使用Spark-Java将JSON作为ORC写入Hadoop

时间:2018-07-12 13:26:08

标签: apache-spark hive dataset

我有Hive表(STORED AS ORC)和JSON数据。

我将JSON写入我的ORC表,如下所示:

JavaRDD<String> jsonData = rdd.map(t -> t.value());//Get the json from RDD

Dataset<String> jsonSet = sparkSession.createDataset(JavaRDD.toRDD(jsonData), org.apache.spark.sql.encoders.STRING());

Dataset<Row> df = sparkSession.read.json(jsonSet);

Dataset<Row> dfSelect = df.select(cols);//cols - Column[] that contains the columns that I need from Json

dfSelect.write().format("orc").mode("append").save(path);

这段代码可以正常工作并将数据插入到我的表中,但是我的问题是数据没有插入正确的列中,如果我的ORC表看起来像

colA       colB     colC       colD        colE
------------------------------------------------
valubB    valueD    valueE  

然后从json到ColB,ColD,ColE列中进行选择,并将insert数据插入到前3列中,

我该如何解决?我需要从Json数据集中获取模式吗?

谢谢。

0 个答案:

没有答案