我有一个包含多个表的庞大数据集。每个表都分成数百个csv.gz文件,我需要通过PySpark将它们导入Spark。有关如何将“csv.gz”文件导入Spark的任何想法? SparkSQL的SparkContext或SparkSession是否提供了导入此类文件的功能?
答案 0 :(得分:1)
您可以使用spark.read.csv()
本地导入gzip压缩文件:
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("stackOverflow") \
.getOrCreate()
fpath1 = "file1.csv.gz"
DF = spark.read.csv(fpath1, header=True)
其中DF
是一个spark DataFrame。
您可以通过输入list
个文件来读取多个文件:
fpath1 = "file1.csv.gz"
fpath2 = "file2.csv.gz"
DF = spark.read.csv([fpath1, fpath2] header=True)
您还可以创建一个"临时视图"允许SQL查询:
fpath1 = "file1.csv.gz"
fpath2 = "file2.csv.gz"
DF = spark.read.csv([fpath1, fpath2] header=True)
DF.createOrReplaceTempView("table_name")
DFres = spark.sql("SELECT * FROM table_name)
其中DFres是从查询生成的spark DataFrame。