gpt4 book ai didi

apache-spark - Spark 流持久表更新

转载 作者:行者123 更新时间:2023-12-05 07:34:14 25 4
gpt4 key购买 nike

我有一个 spark 结构化流应用程序(听 kafka),它也在从 s3 中的持久表中读取我试图让每个微批检查表的更新。我试过了

var myTable = spark.table("myTable!")

spark.sql("select * from parquet.`s3n://myFolder/`")

两者都不能在流式上下文中工作。问题是 parquet 文件在每次更新时都会发生变化,并且 spark 不会运行任何正常命令来刷新,例如:

spark.catalog.refreshTable("myTable!")
spark.sqlContext.clearCache()

我也试过:

spark.sqlContext.setConf("spark.sql.parquet.cacheMetadata","false")
spark.conf.set("spark.sql.parquet.cacheMetadata",false)

没有缓解。必须有办法做到这一点。改为使用 jdbc 连接到数据库会更聪明吗?

最佳答案

假设我没看错,我认为问题是因为 DataFrame 是不可变的,除非您重新启动流式查询并创建新的 DataFrame,否则您看不到 Parquet 表的更改。这个问题有come up on the Spark Mailing List before .明确的答案似乎是捕获这些更新的唯一方法是 restart the streaming query .如果您的应用程序不能容忍 10 秒的停顿,您可能需要查看这篇总结上述对话并讨论如何 SnappyData enables mutations on Spark DataFrames 的博文。 .

免责声明:我为 SnappyData 工作

关于apache-spark - Spark 流持久表更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com