我有几个要使用Spark处理的镶木地板文件。我试过了
df = spark.read
.parquet('*.parquet')
df.createOrReplaceTempView('df')
但是当我运行一个SQL查询,如:
SELECT col1, LAST(col1) FROM df
它似乎只查看同一文件中的最后一个元素。这是预期的行为吗?如果是,是否有任何方法可以克服?
我目前正在做的是:
fnames = !ls *.parquet
df = None
for fname in fnames:
if df is None:
df = spark.read.parquet(fname)
else:
df = df.union(spark.read.parquet(fname))
可以按预期工作,但速度确实很慢。
最佳答案
创建sql上下文:
import pyspark
sc = pyspark.SparkContext('local', "retail")
sqlContext = SQLContext(sc)
使用sql上下文阅读:
df = sqlContext.read.parquet(path/to/folder)
上面的代码读取路径指定的
folder
中的所有实木复合地板文件。关于python - 在Spark中加载多个文件时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57055650/