gpt4 book ai didi

hadoop - Spark 流式传输整个文本文件

转载 作者:可可西里 更新时间:2023-11-01 14:39:51 25 4
gpt4 key购买 nike

我正在学习 Spark streaming,我被困在一个可能很简单的问题上。我想从目录中提取整个文本文件。这里通常提到的方法是wholeTextFile,而不是按行分割文件的textFile。但是,据我所知,该方法在流上下文中不可用。

如何简单实现类似的效果——流式获取(文件名,整个文件内容)?

带有 streamingcontext 和 sparksession 的 Scala 示例会很棒。

最佳答案

好吧,自从 2017 年以来,OP 可能不再有这个问题了,但我实际上看起来是这样的,当我找到解决方案时正准备放弃,Spark 3 将包含一种格式,可以是用来实现这个确切的事情。

https://spark.apache.org/docs/3.0.0-preview/sql-data-sources-binaryFile.html

我的实现看起来与此类似

import org.apache.spark.sql.types.{StructType, StructField, IntegerType, StringType, TimestampType, LongType, BinaryType}

// This schema is fixed, I don't know if there is an object ready for it, didn't look at it tbh
val schema = StructType(List(
StructField("path",StringType,false),
StructField("modificationTime",TimestampType,false),
StructField("length",LongType,false),
StructField("content",BinaryType,true)
))

val myDf = spark.readStream
.format(...)
.option("fileFormat", "binaryFile")
.schema(schema)
.load()

这种方法对我有用,内容对象包含文件的实际内容,从那里您可以简单地将其转换为您需要的任何最终对象。

关于hadoop - Spark 流式传输整个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798332/

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