使用 Pyspark 如何读取 JSON 文件并创建模式
Using Pyspark how to read JSON file and create schema
我有一个 JSON 文件,格式如下。如何阅读它并使用 PYSPARK 函数为此创建模式-
{
"Entry": {
"DataType": "Integer",
"Length": "7",
"Required": "True",
"Description": "Enrty"
},
"Per": {
"DataType": "String",
"Length": "2",
"Required": "True",
"Description": "Per"
}
}
您可以执行以下操作从 json
文件中获取 schema
from pyspark.sql import types as t
def getDataType(DataType):
if DataType == 'Float':
return t.FloatType()
elif DataType == 'Integer':
return t.IntegerType()
elif DataType == 'Date':
return t.DateType()
elif DataType == 'Double':
return t.DoubleType()
else:
return t.StringType()
def getNullable(Required):
if Required == 'True':
return True
else:
return False
df = spark.read.option('multiline', True).json('path to json file')
schema = t.StructType([t.StructField(x['Description'], getDataType(x['DataType']), getNullable(x['Required'])) for x in df.rdd.first()])
所以 schema
应该是
StructType(List(StructField(Enrty,IntegerType,true),StructField(Per,StringType,true)))
我有一个 JSON 文件,格式如下。如何阅读它并使用 PYSPARK 函数为此创建模式-
{
"Entry": {
"DataType": "Integer",
"Length": "7",
"Required": "True",
"Description": "Enrty"
},
"Per": {
"DataType": "String",
"Length": "2",
"Required": "True",
"Description": "Per"
}
}
您可以执行以下操作从 json
文件中获取 schema
from pyspark.sql import types as t
def getDataType(DataType):
if DataType == 'Float':
return t.FloatType()
elif DataType == 'Integer':
return t.IntegerType()
elif DataType == 'Date':
return t.DateType()
elif DataType == 'Double':
return t.DoubleType()
else:
return t.StringType()
def getNullable(Required):
if Required == 'True':
return True
else:
return False
df = spark.read.option('multiline', True).json('path to json file')
schema = t.StructType([t.StructField(x['Description'], getDataType(x['DataType']), getNullable(x['Required'])) for x in df.rdd.first()])
所以 schema
应该是
StructType(List(StructField(Enrty,IntegerType,true),StructField(Per,StringType,true)))