我正在使用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")
答案 0 :(得分:1)
检查HDFS以查找文件系统上的dt
分区
您需要在配置单元表上运行MSCK REPAIR TABLE
以查看新分区。
如果你没有对Spark做任何特别的事情,那么值得指出Kafka Connect HDFS能够直接从Kafka注册Hive分区。