带有partitionBy的Spark SQL dataframe.save正在创建一个数组列

时间:2016-09-29 08:54:46

标签: apache-spark hive apache-spark-sql spark-hive

我正在尝试将Spark SQL数据框的数据保存到hive。要存储的数据应该由数据帧中的一列进行分区。为此我写了以下代码。

val conf = new SparkConf().setAppName("Hive partitioning")
conf.set("spark.scheduler.mode", "FAIR")
val sc = new SparkContext(conf)
val hiveContext = new HiveContext(sc)
hiveContext.setConf("hive.exec.dynamic.partition", "true")
hiveContext.setConf("hive.exec.dynamic.partition.mode", "nonstrict")

val df = hiveContext.sql("....   my sql query ....")

df.printSchema()
df.write.mode(SaveMode.Append).partitionBy("<partition column>").saveAsTable("orgs_partitioned")

数据框被存储为具有名为col且类型为array<string>的单列的表,结构如下所示(Hue的屏幕截图)。

image from hue

任何指针都非常有用。 感谢。

0 个答案:

没有答案