当前,我们可以成功地将多个日志文件(文本)加载到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(
^
有人知道如何解决此问题吗?
答案 0 :(得分:1)
一个类似的例子,应该会有所帮助:
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
答案 1 :(得分:0)
板球007作品的答案(注意“:_ *”)
val df2 = spark.read.textFile(
blob_paths:_*
).withColumn("input_file_name", input_file_name) // Add column with filename for grouping.
非常感谢
bluephantom的答案也有效:)
答案 2 :(得分:-2)
“ spark.read.textFile”方法不支持列表,您可以尝试使用此方法
spark.read.textFile("patha", "pathb")
它将起作用。希望对您有帮助。