spark1.6.1

原创
2017/02/25 17:49
阅读数 150

今天工作时猛然发现,spark1.6.1和spark1.3.1的区别,真是开源的说该就改了啊!!!

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>1.6.1</version>
</dependency>

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>1.3.1</version>
</dependency>

在1.6.1版本中spark-sql已经添加了DataFrameReader、DataFrameWriter,然而在1.3.1中并没有这两个,这是不是个重大的发现呢各位,来来来看看怎么用的吧,一起研究研究我们!

var rdd = sqlContext.sql("select * from mydb.t_user")
rdd: org.apache.spark.sql.DataFrame = [id: int, name: string]
rdd.show()
rdd.write.json("/upload/data_json")

读取data_json的数据
val dataFrame = sqlContext.read.json("/upload/data_json/part*")
dataFrame: org.apache.spark.sql.DataFrame = [id: bigint, name: string]

将dataFrame注册成表
val f1 = dataFrame.registerTempTable("tb_user")
写入到本地文件系统
f1.write.text("/upload/data_text")

写入到另一张表
f1.write.saveAsTable("temp_user")
向表里面追加数据
f1.write.insertInto("temp_user")

写入到关系型数据库
val prop = new java.util.Properties();
prop.put("user", "root")
prop.put("password", "123456")
//将dataFrame中的数据写入到关系型数据库
f1.write.jdbc("jdbc:mysql://localhost:3306/hibernate","t_user",prop)


读取关系型数据库的数据
创建dataFrame
通过sqlContext对象的jdbc方法将关系型数据库的数据装载到dataFrame
val user_rdd = sqlContext.read.jdbc("jdbc:mysql://localhost:3306/hibernate","t_user",prop)
user_rdd: org.apache.spark.sql.DataFrame = [id: int, username: string, password: string, email: string, birthday: timestamp]

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部