在python中将Json数据加载到数据帧中

在python中将Json数据加载到数据帧中,python,pandas,apache-spark,pyspark,Python,Pandas,Apache Spark,Pyspark,我需要将上面的json加载到数据帧中,并尝试了以下操作,但没有成功 list = {'masterId': 2, 'name': 'name', 'description': 'xyz', 'signalTypeRefId': 4, 'unitOfMeasureRefId': 1, 'precision': 1, 'min': -125, 'max': 125, 'isDeprecated': False} 错误: TypeError:字段0:无法合并类型和 要将其作为一行,请使用.trans

我需要将上面的json加载到数据帧中,并尝试了以下操作,但没有成功

list = {'masterId': 2, 'name': 'name', 'description': 'xyz', 'signalTypeRefId': 4, 'unitOfMeasureRefId': 1, 'precision': 1, 'min': -125, 'max': 125, 'isDeprecated': False}
错误:

TypeError:字段0:无法合并类型和

要将其作为一行,请使用
.transpose()


在创建数据帧之前,需要将字典包装到列表中:

df.transpose()
"""
Out[15]: 
  masterId  name description     ...        min  max isDeprecated
0        2  name         xyz     ...       -125  125        False
"""
或者,您可以将其转换为pandas数据帧,并从中创建Spark数据帧,但仍需要将字典包装到列表中:

data = {'masterId': 2, 'name': 'name', 'description': 'xyz', 'signalTypeRefId': 4, 'unitOfMeasureRefId': 1, 'precision': 1, 'min': -125, 'max': 125, 'isDeprecated': False}

df = spark.createDataFrame([data])

df.show()
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
|description|isDeprecated|masterId|max| min|name|precision|signalTypeRefId|unitOfMeasureRefId|
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
|        xyz|       false|       2|125|-125|name|        1|              4|                 1|
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
有关将JSON转换为数据帧的更多信息,请查看下面的链接:)


我收到以下错误:/databricks/spark/python/pyspark/sql/pandas/conversion.py:300:UserWarning:createDataFrame尝试了箭头优化,因为'spark.sql.execution.Arrow.pyspark.enabled'设置为true;但是,失败的原因如下:尝试非优化时需要一个整数(get type str),因为“spark.sql.execution.arrow.pyspark.fallback.enabled”设置为true。警告。警告(msg)类型错误:字段0:无法合并类型,并且我没有安装spark。软件包之间似乎存在一些奇怪的干扰…也许如果您有conda,请创建一个新的conda环境,在那里安装python,然后只安装pandas并尝试一下。请不要覆盖构建的
列表
!尝试以不同的方式命名变量。
df.transpose()
"""
Out[15]: 
  masterId  name description     ...        min  max isDeprecated
0        2  name         xyz     ...       -125  125        False
"""
data = {'masterId': 2, 'name': 'name', 'description': 'xyz', 'signalTypeRefId': 4, 'unitOfMeasureRefId': 1, 'precision': 1, 'min': -125, 'max': 125, 'isDeprecated': False}

df = spark.createDataFrame([data])

df.show()
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
|description|isDeprecated|masterId|max| min|name|precision|signalTypeRefId|unitOfMeasureRefId|
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
|        xyz|       false|       2|125|-125|name|        1|              4|                 1|
+-----------+------------+--------+---+----+----+---------+---------------+------------------+
data = {'masterId': 2, 'name': 'name', 'description': 'xyz', 'signalTypeRefId': 4, 'unitOfMeasureRefId': 1, 'precision': 1, 'min': -125, 'max': 125, 'isDeprecated': False}

df = spark.createDataFrame(pd.DataFrame([data]))

df.show()
+--------+----+-----------+---------------+------------------+---------+----+---+------------+
|masterId|name|description|signalTypeRefId|unitOfMeasureRefId|precision| min|max|isDeprecated|
+--------+----+-----------+---------------+------------------+---------+----+---+------------+
|       2|name|        xyz|              4|                 1|        1|-125|125|       false|
+--------+----+-----------+---------------+------------------+---------+----+---+------------+
data = pd.DataFrame([list])
data = pd.json_normalize(list)