我似乎无法在pyspark的文档中找到相关文档。 我试图一次读取多个parquets,如下:
df = sqlContext.read.option("basePath", "/some/path")\
.load("/some/path/date=[2018-01-01, 2018-01-02]")
并收到以下异常
java.util.regex.PatternSyntaxException: Illegal character range near index 11
E date=[2018-01-01,2018-01-02]
我尝试用\-
替换连字符,但后来我收到了一个未找到的文件异常。
我很感激你的帮助
答案 0 :(得分:0)
转发-
不是您的问题。您不能在列表中指定多个日期。如果您想阅读多个文件,可以选择几个选项。
选项1 :使用*
作为通配符:
df = sqlContext.read.option("basePath", "/some/path").load("/some/path/date=2018-01-0*")
但是这也会读取任何名为/some/path/data=2018-01-03
到/some/path/data=2018-01-09
的文件。
选项2 :分别阅读每个文件并将结果合并
dates = ["2018-01-01", "2018-01-02"]
df = reduce(
lambda a, b: a.union(b),
[
sqlContext.read.option("basePath", "/some/path").load(
"/some/path/date={d}".format(d=d)
) for d in dates
]
)