apache-spark - 动态分区无法从 Spark 流式传输到 Hive(ORC 格式)
问题描述
我有用 scala 编写的 Spark 程序,它不断地消耗来自 Kafka 主题处理和聚合数据的数据。该程序使用结构化流,并且应该将数据插入基于数据中的“startdate”字段分区的 Hive(非酸表)中。
我尝试在下面将数据插入 Hive 表。
val query =
stream_df_agg_tr1.writeStream.format("orc").partitionBy("startdate").option("checkpointLocation","<>:8020/user/sm/hivecheckpt8")
.outputMode(OutputMode.Append).start("<>/warehouse/tablespace/external/hive/acti.db/applicationstats5minute")
query.awaitTermination()
我也尝试使用 .option("path",<>) 指定表路径。我设置了以下属性(在 spark 程序中尝试并作为 spark-shell 参数)。 "spark.hadoop.hive.exec.dynamic.partition=true" "spark.hadoop.hive.exec.dynamic.partition.mode=nonstrict"
不过,我没有看到自动创建的分区。一旦我尝试在插入数据之前预先创建一个基于日期的分区,在这种情况下,数据就会落入正确的分区中,尽管之后这也不起作用。
你能建议如何解决这个问题吗?
解决方案
推荐阅读
- python - 使用 Pyinstaller 时找不到隐藏的导入 Tensorflow 包
- javascript - searchEntry() laravel 或 php 常量函数?
- visual-studio-code - 如何更改plain-txt输出以向上移动输出模式/?
- python - 提交 django 表单后出现错误 405
- javascript - 如何在移动设备的画布上绘图?
- python-3.x - 如何使日期时间列成为熊猫数据框中的索引?
- css - 使用 Bootstrap 4 的响应式报价轮播
- go - gcp 控制台,尝试构建项目并且没有给出显示空间错误
- java - Java Servlet 将表单数据发送到 REST API
- ios - SwiftUI 的多个列表