читать несколько файлов, но выяснить, в каком файле я сейчас нахожусь - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу использовать этот синтаксис:

sc.textFile (','. Join (files))

Однако мне также нужно сопоставить каждую строку с соответствующим текстовым файлом и сохранитьэто дБ позже.Есть ли способ добавить имя файла в rdd или каким-то образом узнать, какой файл я сейчас читаю?в конце я хочу df со строкой (содержимое строки файла) и другой строкой (соответствующее имя файла).

1 Ответ

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

Мне удалось найти решение, надеясь, что оно кому-нибудь поможет.
Я читаю каталог с файлами jsonl.То, что я получаю, это фрейм данных, где первый столбец - это значение строки, а второй столбец - это имя файла, откуда взята эта строка:

from pyspark.sql.functions import input_file_name
.......
read_files = spark.sparkContext.textFile(some_dir_with_files)
lines = read_files.map(lambda x: x.encode("ascii", "ignore"))
json_data = lines.map(lambda line: json.loads(str(line)))
df = spark.createDataFrame(json_data, StringType())
df_with_file_names = df.withColumn("file_name", input_file_name())
return df_with_file_names
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...