如何将路径列表传递给 spark.read.textFile?



目前我们可以成功地将多个日志文件(文本(加载到 Spark (v 2.1( 数据帧中,并使用 glob 语法将每行映射到链接的文件路径,例如。

val df = spark.read.textFile(
"wasb://container_name@storage_name/base_dir/2018/*.txt"    
).withColumn("input_file_name", input_file_name) // Add column with filename for grouping.

我们现在想将预先准备好的路径列表"blob_paths"传递给"spark.read.textFile",即将片段重写为

val df = spark.read.textFile(
blob_paths    
).withColumn("input_file_name", input_file_name) // Add column with filename for grouping.

但我们不能使这项工作发挥作用。路径还可以,但列表似乎在以下内容中中断了"spark.read.textFile"

<console>:31: error: overloaded method value textFile with alternatives:
(paths: String*)org.apache.spark.sql.Dataset[String] <and>
(path: String)org.apache.spark.sql.Dataset[String]
cannot be applied to (List[String])
val df = spark.read.textFile(
^

有人知道如何解决这个问题吗?

一个类似的例子,应该会有所帮助:

val paths = Seq(
"/FileStore/tables/ALT2018_01.txt",
"/FileStore/tables/ALT2018_02.txt")
val df2 = 
spark.read.format("csv")
.option("sep", ",")
.option("inferSchema", "true")
.option("header", "false")
.load(paths: _*) 
df2.show

板球 007 作品的答案(注 ":_*"(

val df2 = spark.read.textFile(
blob_paths:_*
).withColumn("input_file_name", input_file_name) // Add column with filename for grouping.

多谢

蓝幻影的答案也:)

方法 "spark.read.textFile" 不支持 List,可以尝试使用此方法

spark.read.textFile("patha", "pathb")

它会起作用。我希望这对你有所帮助。

最新更新