Apache Spark читает несколько текстовых файлов за один прогон - PullRequest
0 голосов
/ 30 января 2019

Я могу успешно загрузить текстовый файл в DataFrame с помощью следующего кода Apache Spark Scala:

val df = spark.read.text("first.txt")
  .withColumn("fileName", input_file_name())
  .withColumn("unique_id", monotonically_increasing_id())

Можно ли предоставить несколько файлов за один прогон?Примерно так:

val df = spark.read.text("first.txt,second.txt,someother.txt")
  .withColumn("fileName", input_file_name())
  .withColumn("unique_id", monotonically_increasing_id())

Сейчас следующий код не работает со следующей ошибкой:

Exception in thread "main" org.apache.spark.sql.AnalysisException: Path does not exist: file:first.txt,second.txt,someother.txt;
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:558)
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:545)

Как правильно загрузить несколько текстовых файлов?

1 Ответ

0 голосов
/ 30 января 2019

Функция spark.read.text() имеет параметр varargs из документов :

def text(paths: String*): DataFrame

Это означает, что для чтения несколькихфайлы, которые вам нужно только передать в функцию через запятую, т.е.

val df = spark.read.text("first.txt", "second.txt", "someother.txt")
...