【问题标题】:How to write data of streaming query to Hive?如何将流式查询的数据写入 Hive?
【发布时间】:2019-11-29 05:34:25
【问题描述】:

我正在使用 Spark 结构化流从 HDFS 读取数据。我想将该数据帧保存到 Hive。

我已经这样做了,但它给出了错误。

totalSalary.write.format("csv").mode("append").saveAsTable("test")

【问题讨论】:

  • 你能提供你的错误堆栈吗?
  • 你一般将流写入存储并在其上创建表
  • 我用错误图片更新了问题。@rbcvl

标签: apache-spark pyspark spark-structured-streaming


【解决方案1】:

totalySalary 不是Dataframe,而是DStream (doc)。此类不存在方法write

这里有一个很好的例子: How to read stream of structured data and write to Hive table

val query = totalSalary.writeStream.foreachBatch((batchDs: Dataset[_], batchId: Long) => {
         batchDs.write
         .mode(append)
         .insertInto("test");
}).start()

【讨论】:

  • 感谢您的帮助。是否可以在 pyspark.@rbcvl 中执行此操作
【解决方案2】:

tl;dr Spark Structured Streaming 不支持将流式查询的结果保存到 Hive。


正如错误所说,totalSalary 是流数据帧,仅支持 writeStream

主要问题是您无法将流式查询的结果写入 Hive 表。根本不支持(DataStreamWriter 上没有方法saveAsTable 或类似方法)。

【讨论】:

    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多