如何在hive中保存spark.writeStream结果?

时间:2017-12-19 19:15:37

标签: apache-spark apache-kafka spark-structured-streaming spark-hive

我正在使用spark.readStream从Kafka读取数据并在结果数据框上运行爆炸。 我试图在Hive表中保存爆炸的结果,我无法找到任何解决方案。 我尝试了以下方法,但它不起作用(它运行但我没有看到任何新的分区创建)

val query = tradelines.writeStream.outputMode("append")
  .format("memory")
  .option("truncate", "false")
  .option("checkpointLocation", checkpointLocation)
  .queryName("tl")
  .start() 

sc.sql("set hive.exec.dynamic.partition.mode=nonstrict;")

sc.sql("INSERT INTO TABLE default.tradelines PARTITION (dt) SELECT * FROM tl")

1 个答案:

答案 0 :(得分:1)

检查HDFS以查找文件系统上的dt分区

您需要在配置单元表上运行MSCK REPAIR TABLE以查看新分区。

如果你没有对Spark做任何特别的事情,那么值得指出Kafka Connect HDFS能够直接从Kafka注册Hive分区。