gpt4 book ai didi

hadoop - 如何用Spark尾部HDFS文件?

转载 作者:行者123 更新时间:2023-12-02 21:29:50 24 4
gpt4 key购买 nike

我正在使用HDFS存储原始JSON行:

/user/ebuildy/logs/today.json

{"event":"buy", "tag1" : "20€", "tag2" : "user2"}
...

使用Elastic Logstash,webhdfs输出插件(意味着每X秒将JSON行添加到today.json中)。

另一方面,我正在使用Apache SparkSQL查询数据。加载数据的过程非常吸引人:
CREATE TABLE events USING org.apache.spark.sql.json OPTIONS (path "hdfs://hadoop:9000/user/ebuildy/logs/today.json")

而且我可以很容易地通过Tableau查询它(非常棒的家伙!)。

现在,我要尽力而为的是将传入数据附加到Spark(以及HDFS文件)中。

实现这一目标的最佳方法是什么?

最佳答案

这样做的方式是:您的表不过是由该load命令创建的RDD的包装(带有模式和好东西的包装),该包装命令从HDFS读取数据并创建了RDD分区。

现在,RDD是不可变的。因此,附加新数据意味着(旧RDD +新数据)->新RDD。

您有多种选择,但这实际上取决于您的用例。如果您想与Tableau连接,那么您是否正在寻找创建一种ETL类型的工作负载,该工作负载每30分钟运行一次?如果是这样,您可能希望管理每次运行都从HDFS读取文件,并与现有RDD合并,创建新的RDD,然后将现有的RDD切换为新的RDD。

关于hadoop - 如何用Spark尾部HDFS文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697692/

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