如何使用Pyspark将bz2文件读入数据框中?

8
我可以使用以下代码将json文件读入Pyspark数据框中:
spark = SparkSession.builder.appName('GetDetails').getOrCreate()
df = spark.read.json("path to json file")

然而,当我尝试将一个压缩的 csv 文件(.bz2格式)读取到数据框中时,就会出现错误。以下是我使用的代码:

spark = SparkSession.builder.appName('GetDetails').getOrCreate()
df = spark.read.load("path to bz2 file")

你能帮我纠正一下吗?


1
你遇到了什么错误?尝试在你的问题中包含那个错误。 - ruseel
我相信错误信息包含了这个线索:“Caused by: java.lang.RuntimeException: file:path/to/json.bz2 is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [0, 108, 106, -40]”,因为默认情况下,spark.read.load 期望的是“parquet”格式。 - Sergiy Sokolenko
1个回答

2
方法spark.read.load()有一个可选参数format,默认值为'parquet'。

因此,要使您的代码正常工作,它应该像这样:


df = spark.read.load("data.json.bz2", format="json")


此外,spark.read.json 可以完美地处理压缩的 JSON 文件,例如:

df = spark.read.json("data.json.bz2")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接