在通过DataFrame API编写时,目前只支持一种模式“append”。尚未实现的“覆盖”模式

  1. import org.apache.kudu.spark.kudu._
  2. import org.apache.spark.{SparkConf, SparkContext}
  3. import org.apache.spark.sql.SparkSession
  4.  
  5. /**
  6. * Created by angel;
  7. */
  8. object DataFrame_write {
  9. def main(args: Array[String]): Unit = {
  10. val sparkConf = new SparkConf().setAppName("AcctfileProcess")
  11. //设置Master_IP并设置spark参数
  12. .setMaster("local")
  13. .set("spark.worker.timeout", "500")
  14. .set("spark.cores.max", "10")
  15. .set("spark.rpc.askTimeout", "600s")
  16. .set("spark.network.timeout", "600s")
  17. .set("spark.task.maxFailures", "1")
  18. .set("spark.speculationfalse", "false")
  19. .set("spark.driver.allowMultipleContexts", "true")
  20. .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
  21. val sparkContext = SparkContext.getOrCreate(sparkConf)
  22. val sqlContext = SparkSession.builder().config(sparkConf).getOrCreate().sqlContext
  23. //TODO 1:定义表名
  24. val kuduTableName = "spark_kudu_tbl"
  25. val kuduMasters = "hadoop01:7051,hadoop02:7051,hadoop03:7051"
  26. //使用spark创建kudu表
  27. val kuduContext = new KuduContext(kuduMasters, sqlContext.sparkContext)
  28. //TODO 2:准备数据
  29. val customersAppend = Array(
  30. Customer("bob", 30, "boston"),
  31. Customer("charlie", 23, "san francisco"))
  32. import sqlContext.implicits._
  33. //TODO 3:配置kudu参数
  34. val kuduOptions: Map[String, String] = Map(
  35. "kudu.table" -> kuduTableName,
  36. "kudu.master" -> kuduMasters)
  37. //TODO 4:将数据转化成dataframe
  38. val customersAppendDF = sparkContext.parallelize(customersAppend).toDF()
  39.  
  40. //TODO 5:执行写入操作(目前只支持追加模式)
  41. customersAppendDF.write.options(kuduOptions).mode("append").kudu
  42.  
  43. //TODO 6:读取数据
  44. sqlContext.read.options(kuduOptions).kudu.show()
  45. }
  46. }

spark操作Kudu之写 - 使用DataFrame API的更多相关文章

  1. spark操作Kudu之读 - 使用DataFrame API

    虽然我们可以通过上面显示的KuduContext执行大量操作,但我们还可以直接从默认数据源本身调用读/写API. 要设置读取,我们需要为Kudu表指定选项,命名我们要读取的表以及为表提供服务的Kudu ...

  2. spark操作kudu之DML操作

    Kudu支持许多DML类型的操作,其中一些操作包含在Spark on Kudu集成 包括: INSERT - 将DataFrame的行插入Kudu表.请注意,虽然API完全支持INSERT,但不鼓励在 ...

  3. 使用spark操作kudu

    Spark与KUDU集成支持: DDL操作(创建/删除) 本地Kudu RDD Native Kudu数据源,用于DataFrame集成 从kudu读取数据 从Kudu执行插入/更新/ upsert ...

  4. 使用sparkSQL的insert操作Kudu

    可以选择使用Spark SQL直接使用INSERT语句写入Kudu表:与'append'类似,INSERT语句实际上将默认使用UPSERT语义处理: import org.apache.kudu.sp ...

  5. Spark操作MySQL,Hive并写入MySQL数据库

    最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...

  6. spark 操作hbase

    HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本.这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API.虽然 1.0.0 兼容旧版本的 API,不过还是应 ...

  7. Spark操作hbase

    于Spark它是一个计算框架,于Spark环境,不仅支持单个文件操作,HDFS档,同时也可以使用Spark对Hbase操作. 从企业的数据源HBase取出.这涉及阅读hbase数据,在本文中尽快为了尽 ...

  8. 使用spark集成kudu做DDL

    spark对kudu表的创建 定义kudu的表需要分成5个步骤: 1:提供表名 2:提供schema 3:提供主键 4:定义重要选项:例如:定义分区的schema 5:调用create Table a ...

  9. Spark SQL怎么创建编程创建DataFrame

    创建DataFrame在Spark SQL中,开发者可以非常便捷地将各种内.外部的单机.分布式数据转换为DataFrame.以下Python示例代码充分体现了Spark SQL 1.3.0中DataF ...

随机推荐

  1. ASP.NET MVC5高级编程 之 视图

    1.1理解视图约定 当创建一个项目模版时,可以注意到,项目以一种非常具体的方式包含了一个结构化的Views目录.在每一个控制器的View文件夹中,每一个操作方法都有一个同名的视图文件与其对应.这就提供 ...

  2. python学习第42、43天 HTML\CSS

    前端是什么? 帮助不了解后端程序的客户轻松使用程序的工具,可以提升工作效率,提供各种各样的体验. 通用的前端大致会使用三种语言,用在三个不同的方面对前端进行架构和优化,这里也只介绍这三种 web前端常 ...

  3. 5)django-模板

    django模板显示页面 一:语法使用 1)变量:{{变量名}}         2)for循环            {% for row in userlist%}                 ...

  4. Android Apk 瘦身大法

    原文地址: https://mp.weixin.qq.com/s/XS0tuLgTfyp4rW4h69wyQQ 一, 我们在多人开发项目 或者 遗留项目中开发时,会有些自己没用到的资源文件,但是自己也 ...

  5. linux命令tar压缩解压

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  6. Confluence 6 虚拟文件和文件夹

    在取消点赞事件中,你可能会遇到 WebDAV  客户端的问题或者不稳定的情况,你可以启用访问自动创建(虚拟)文件和文件夹. 备注: 在默认情况下,这个选项隐藏在 'WebDAV Configurati ...

  7. linux之iptables常用命令

    iptables详解 iptables -L 该命令会以列表的形式显示出当前使用的 iptables 规则,每一条规则前面的编号可以用来做为其它操作--例如删除操作--的参数,很有用 iptables ...

  8. selenium之实现多窗口切换到自己想要的窗口

    #coding=utf-8 from selenium import webdriver import time from selenium.webdriver.support import expe ...

  9. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

  10. css之操作属性

    1.文本 1.文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 ...