PySpark загружает файлы между временными метками - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть список XML-файлов, содержащих метку времени в имени файла.Мне нужно условно загрузить эти файлы на основе значения метки времени.Для этого я использую подстановочные знаки.

Вот код, который я использую, который не работает:

spark.read \
  .format("com.databricks.spark.xml") \
  .load("/path/file_[1533804409548-1533873609934]*")

1 Ответ

0 голосов
/ 06 февраля 2019

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

target_files = []
st = 123
et = 321
path="<files_base_path>"
for file in os.listdir(path):
    try:
        ts = int(file[5:8])
        if ts >= st and ts <= et:
            target_files.append(path+file)
    except Exception as ex:
        continue
spark.read.parquet(*target_files)

Измените постоянные значения на основе вашего ввода.Надеюсь, это поможет вам ..

...