如何将Pyspark DataFrame对象存储到配置单元表,“primary12345”是一个配置单元表?
我使用下面的代码masterDataDf
是一个数据框对象
masterDataDf.write.saveAsTable("default.primary12345")
低于错误
:java.lang.RuntimeException:使用SQLContext创建的表必须是TEMPORARY。改为使用HiveContext。
答案 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 ");