如何在PySpark中保存从URL获取的JSON数据?

cxfofazt  于 2022-11-01  发布在  Spark
关注(0)|答案(3)|浏览(183)

我已经从API获取了一些.json数据。

import urllib2
test=urllib2.urlopen('url') 
print test

如何将其保存为表格或数据框?我使用的是Spark 2.0。

0yg35tkg

0yg35tkg1#

下面是我如何成功地将.json数据从web导入到df中:

from pyspark.sql import SparkSession, functions as F
from urllib.request import urlopen

spark = SparkSession.builder.getOrCreate()

url = 'https://web.url'
jsonData = urlopen(url).read().decode('utf-8')
rdd = spark.sparkContext.parallelize([jsonData])
df = spark.read.json(rdd)
elcex8rz

elcex8rz2#

为此,您可以进行一些研究,并尝试使用sqlContext。以下是示例代码:

>>> df2 = sqlContext.jsonRDD(test)
>>> df2.first()

此外,请访问line并在此处查看更多信息,https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html

rxztt3cl

rxztt3cl3#

除了Rakesh Kumar的回答之外,在spark 2.0中实现这一点的方法是:
http://spark.apache.org/docs/2.1.0/sql-programming-guide.html#data-sources
例如,下面的代码基于JSON文件的内容创建一个DataFrame:


# spark is an existing SparkSession

df = spark.read.json("examples/src/main/resources/people.json")

# Displays the content of the DataFrame to stdout

df.show()

**请注意,**作为JSON文件提供的文件不是典型的JSON文件。每行必须包含一个独立的、自包含的有效JSON对象。有关详细信息,请参阅JSON行文本格式,也称为换行符分隔的JSON。因此,常规的多行JSON文件通常会失败。

相关问题