读取parquet文件创建DataFrame

注意:

  • 可以将DataFrame存储成parquet文件。保存成parquet文件的方式有两种

df.write().mode(SaveMode.Overwrite)format("parquet").save("./sparksql/parquet");df.write().mode(SaveMode.Overwrite).parquet("./sparksql/parquet");
  • SaveMode指定文件保存时的模式。

Overwrite:覆盖

Append:追加

ErrorIfExists:如果存在就报错

Ignore:如果存在就忽略

javaAPI:

【注】创建目录:parquet

package SparkSql;import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SQLContext;
import org.apache.spark.sql.SaveMode;/*** @author George* @description* 读取parquet文件创建DataFrame**/
public class ParquetDemo {public static void main(String[] args) {SparkConf conf = new SparkConf();conf.setAppName("pd");conf.setMaster("local");JavaSparkContext sc = new JavaSparkContext(conf);sc.setLogLevel("error");SQLContext sqlContext = new SQLContext(sc);JavaRDD<String> rdd1 = sc.textFile("./data/json");Dataset<Row> dataset = sqlContext.read().json(rdd1);/*** 将Dataset保存成parquet文件,SaveMode指定存储文件时的保存模式* 保存成parquet文件有以下两种方式:*///format 指定基础输出数据源。内置选项包括“parquet”、“json”等。dataset.write().mode(SaveMode.Overwrite).format("parquet").save("./data/parquet");
//        dataset.write().mode(SaveMode.Overwrite).parquet("./data/parquet");dataset.show();/*** +----+------+* | age|  name|* +----+------+* |  22|george|* |null|  lucy|* |  20| honey|* |  20|    KK|* +----+------+*//*** 加载parquet文件成DataFrame* 加载parquet文件有以下两种方式:*/Dataset<Row> load = sqlContext.read().format("parquet").load("./data/parquet");
//        Dataset<Row> load = sqlContext.read().parquet("./data/parquet");load.show();/*** +----+------+* | age|  name|* +----+------+* |  22|george|* |null|  lucy|* |  20| honey|* |  20|    KK|* +----+------+*/sc.stop();}
}

scalaAPI:

package SparkSqlimport org.apache.spark.sql.{SQLContext, SaveMode}
import org.apache.spark.{SparkConf, SparkContext}object ParquetScalaDemo {def main(args: Array[String]): Unit = {val conf = new SparkConf().setMaster("local").setAppName("sd")val sc = new SparkContext(conf)sc.setLogLevel("error")val sqlContext = new SQLContext(sc)val rdd = sc.textFile("./data/json")val dataFrame = sqlContext.read.json(rdd)dataFrame.show()/*** +----+------+* | age|  name|* +----+------+* |  22|george|* |null|  lucy|* |  20| honey|* |  20|    KK|* +----+------+*//*** 将dataframe保存成parquet文件*/
//    dataFrame.write.format("parquet").save("./data/parquet")dataFrame.write.mode(SaveMode.Overwrite).parquet("./data/parquet")/*** 读取parquet文件*/val result = sqlContext.read.parquet("./data/parquet")
//    val result = sqlContext.read.format("parquet").load("./data/parquet")result.show()/*** +----+------+* | age|  name|* +----+------+* |  22|george|* |null|  lucy|* |  20| honey|* |  20|    KK|* +----+------+*/sc.stop()}
}

Spark _23 _读取parquet文件创建DataFrame(二)相关推荐

  1. pyspark 读取csv文件创建DataFrame的两种方法

    pyspark 读取csv文件创建DataFrame的两种方法 方法一:用pandas辅助 from pyspark import SparkContext from pyspark.sql impo ...

  2. Spark _25 _读取Hive中的数据加载成DataFrame/DataSet(四)

    由于Hive不在本地,操作略显麻烦.不过细心一点,分析错误,也还好,如果你搭建的hadoop是HA,需要多注意: 这里指出一个错误,如果你报了同类错误,可以参考:https://georgedage. ...

  3. Spark _24 _读取JDBC中的数据创建DataFrame/DataSet(MySql为例)(三)

    两种方式创建DataSet 现在数据库中创建表不能给插入少量数据. javaapi: package SparkSql;import org.apache.spark.SparkConf; impor ...

  4. Spark读取Parquet格式的数据为Dataframe

    SaveMode指定文件保存时的模式: OverWrite 覆盖 Append 追加 ErrorIfExists 如果存在就报错 Ignore 如果存在就忽略 val spark = SparkSes ...

  5. Spark _22 _创建DataFrame的几种方式(一)

    创建DataFrame的几种方式 读取json格式的文件创建DataFrame 注意: json文件中的json数据不能嵌套json格式数据. DataFrame是一个一个Row类型的RDD,df.r ...

  6. Spark基础学习笔记23:DataFrame与Dataset

    文章目录 零.本讲学习目标 一.Spark SQL (一)Spark SQL概述 (二)Spark SQL主要特点 1.将SQL查询与Spark应用程序无缝组合 2.Spark SQL以相同方式连接多 ...

  7. Spark SQL来读取现有Hive中的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等). Spark SQL的其中一个分支就是Spa ...

  8. Spark SQL程序实现RDD转换DataFrame

    通过反射推断Schema 在Spark SQL中有两种方式可以在DataFrame和RDD进行转换 利用反射机制,推导包含某种类型的RDD,通过反射将其转换为指定类型的DataFrame,适用于提前知 ...

  9. spark 简单实战_SparkCore入门实战 (二)

    一.键值对RDD数据分区器 键值对RDD数据分区器Spark目前支持Hash分区和Range分区,用户也可以自定义分区,Hash分区为当前的默认分区,Spark中分区器直接决定了RDD中分区的个数.R ...

最新文章

  1. oracle能否生成mdb,oracle怎么导入.mdb文件
  2. 异步社区本周半价电子书(6月11-17日)
  3. java中日期计算时间差,java中依据,两个日期,计算时间差
  4. ES6之Module的语法(3)
  5. HTML+CSS+JS实现 ❤️echarts大数据统计图表实例❤️
  6. n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现
  7. C语言,利用条件语句判断数的奇偶性。
  8. 20181211HW
  9. Ubuntu上: insufficient permissions for device解决
  10. python整人代码大全_整人代码大全
  11. Unity 实现部分模型流光效果
  12. 水中机器人电控方案设计
  13. 如何用photoshop快速换脸
  14. xcode6 下载地址
  15. uniapp uni-swipe-action 滑动删除
  16. [ecshop 资料] ecshop 手机 自动识别 ua 自动跳转到手机版本 miqinew ecmoban
  17. DI高速计数器编码器脉冲计数器PNPNPN输入模块高低电平
  18. .bat批处理(十一):替换字符串中包含百分号%的子串
  19. C语言程序设计编程题(六)15
  20. vba rnd_VBA Rnd()函数不正确,应使用什么代替

热门文章

  1. web报表开发技术专题八:总结
  2. 牛客 - 牛牛的最大兴趣组(思维+数论)
  3. Docker教程-使用
  4. 贝叶斯学习及共轭先验
  5. 【网络编程】之十一、重叠IO Overlapped IO 完成例程
  6. _variant_t和_bstr_t有什么区别
  7. 深入理解CPU的调度原理
  8. 怎样的代码算是好代码?
  9. 我的 2021 年终总结
  10. 如何从零开始写一个 web 框架?