load、save方法、spark sql的几种数据源

本文介绍如何使用Spark通过load和save方法读取和保存不同格式的数据,包括Parquet和JSON等,并展示了如何处理分区数据和合并元数据。
load、save方法的用法 
        DataFrame usersDF = sqlContext.read().load("hdfs://spark1:9000/users.parquet");
        
        usersDF.select("name""favorite_color").write()
                .save("hdfs://spark1:9000/namesAndFavColors.parquet");  


  //load、save方法~指定文件格式
        DataFrame peopleDF = sqlContext.read().format("json")
                .load("hdfs://spark1:9000/people.json");
        peopleDF.select("name").write().format("parquet")

                .save("hdfs://spark1:9000/peopleName_java"); 

parquet数据源:
 -》加载parquet数据

DataFrame usersDF = sqlContext.read().parquet("hdfs://spark1:9000/spark-study/users.parquet");

 

-》parquet分区自动推断

将只有两个字段的user.parquet存到 /users/gender=male/country=us/ 目录下(如下), 

 

使用如下代码加载users.parquet的数据后,得到的usersDF中将会有4个字段 

DataFrame usersDF = sqlContext.read().parquet("hdfs://spark1:9000/spark-study/users/gender=male/country=us/users.parquet");

 其中gender字段的值为male,country的值为us

 

-》合并元数据

parquet合并元数据: http://www.cnblogs.com/key1309/p/5332089.html

json数据源: 

DataFrame studentScoresDF = sqlContext.read().json("hdfs://spark1:9000/spark-study/students.json");

 

//json数据源的格式要求:

 

 

 

Hive数据源

// 待续。。。

 

 

JDBC数据源:

 http://www.cnblogs.com/key1309/p/5350179.html

 

转载于:https://www.cnblogs.com/key1309/p/5352365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值