在Spark中读取多个gz文件以处理多个数据帧

时间:2017-10-02 15:08:04

标签: python apache-spark pyspark apache-spark-sql spark-dataframe

我想在Spark中读取多个文件,所以我试着这样做:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
path_5 = cos.url('*.gz', 'mounts381273cf3e1ee4647976ff6a7f5334537')

# spark is an existing SparkSession
df1 = spark.read.json(path_5)
# Displays the content of the DataFrame to stdout
df1.show()

当我这样做时:

df1.createOrReplaceTempView ("table1")
df3 = spark.sql("SELECT COUNT (*) FROM table1").show()

获得的结果是79784。

我在该目录中有两个gz文件,我做了同样的操作:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
path_5 = cos.url('20160515000523_49559317672952246664631132266050590905816465503319752754-49559317672952246664631133026940039290527012843121803314.gz', 'mounts381273cf3e1ee4647976ff6a7f5334537')
path_6 = cos.url('20160515001138_49559317698308193955360450873593063506777935176037040194-49559317698308193955360451613760314417474117784886575170.gz', 'mounts381273cf3e1ee4647976ff6a7f5334537')

当我同时计算两者时,第一个结果是79784而第二个结果是40024.

所以当我尝试使用命令

处理这两个文件时
path_5 = cos.url('*.gz', 'mounts381273cf3e1ee4647976ff6a7f5334537') 

我得到的结果与第一个文件的结果相同,所以当我使用这个命令时,我认为我错了。

任何人都有想法一次处理这些文件并获取整个数据框吗?

谢谢!

0 个答案:

没有答案