Pyspark数据框到Hive表

时间:2017-11-09 12:11:05

标签: hive pyspark pyspark-sql

如何将Pyspark DataFrame对象存储到配置单元表,“primary12345”是一个配置单元表? 我使用下面的代码masterDataDf是一个数据框对象

masterDataDf.write.saveAsTable("default.primary12345")

低于错误

  

:java.lang.RuntimeException:使用SQLContext创建的表必须是TEMPORARY。改为使用HiveContext。

1 个答案:

答案 0 :(得分:2)

您可以创建一个临时表。

masterDataDf.createOrReplaceTempView("mytempTable") 

然后,您可以使用简单的hive语句来创建表并从临时表中转储数据。

sqlContext.sql("create table primary12345 as select * from mytempTable");

OR

如果你想使用HiveContext 你需要/创建一个HiveContext

import org.apache.spark.sql.hive.HiveContext;

HiveContext sqlContext = new org.apache.spark.sql.hive.HiveContext(sc.sc());

然后直接保存数据框或选择要存储为hive表的列

masterDataDf.write().mode("overwrite").saveAsTable("default.primary12345 ");