目前我们可以成功地将多个日志文件(文本(加载到 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")
它会起作用。我希望这对你有所帮助。