mar*_*tin 29 python json dataframe pyspark
我有这个JSON文件
{
"a": 1,
"b": 2
}
Run Code Online (Sandbox Code Playgroud)
这是用Python json.dump方法获得的.现在,我想使用pyspark将此文件读入Spark中的DataFrame.以下文档,我正在这样做
sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.read.json('my_file.json')
print df.show()
print语句虽然吐出了这个:
+---------------+
|_corrupt_record|
+---------------+
| {|
| "a": 1, |
| "b": 2|
| }|
+---------------+
Run Code Online (Sandbox Code Playgroud)
任何人都知道发生了什么以及为什么它没有正确解释文件?
Ber*_*ard 47
您需要在输入文件中每行有一个json对象,请参阅http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrameReader.json
如果您的json文件看起来像这样,它将为您提供预期的数据帧:
{ "a": 1, "b": 2 }
{ "a": 3, "b": 4 }
....
df.show()
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
Run Code Online (Sandbox Code Playgroud)
小智 27
如果要保留JSON文件(不删除新行字符\n),请包含multiLine=True关键字参数
sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.read.json('my_file.json', multiLine=True)
print df.show()
Run Code Online (Sandbox Code Playgroud)
小智 6
在Spark 2.2+中,您可以使用以下命令读取多行的json文件。
val dataframe = spark.read.option("multiline",true).json( " filePath ")
Run Code Online (Sandbox Code Playgroud)
如果每行有json对象,
val dataframe = spark.read.json(filepath)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23961 次 |
| 最近记录: |