将 Pyspark 数据帧转换为 Hive Table



如何将 Pyspark DataFrame 对象存储到 Hive 表中,"primary12345" 是 Hive 表?我使用以下代码masterDataDf是一个数据框对象

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

低于错误

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

您可以创建一个临时表。

masterDataDf.createOrReplaceTempView("mytempTable") 

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

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

如果要使用 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 ");

相关内容

  • 没有找到相关文章

最新更新