时间戳之间的PySpark加载文件

时间:2019-02-06 08:22:51

标签: apache-spark pyspark timestamp range wildcard

我有一个文件名中包含时间戳的xml文件列表。我需要根据时间戳值有条件地加载这些文件。为此,我使用通配符。

这里我使用的代码不起作用:

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

1 个答案:

答案 0 :(得分:0)

我想您不能使用通配符来完成此操作,因为您想加载时间范围内的文件。由于可以从多个位置加载数据帧,因此您可以制作一个在时间范围内的文件路径数组并加载路径。这是我尝试过的示例代码,

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)

根据您的输入更改常数值。希望能对您有所帮助。