首页 文章

使用Pyspark如何读取JSON文件并创建模式

提问于
浏览
-1

我有一个JSON文件格式如下 . 如何阅读并使用PYSPARK功能为此创建架构 -

{
        "Entry": {
                "DataType": "Integer",
                "Length": "7",
                "Required": "True",
                "Description": "Enrty"
        },
        "Per": {
                "DataType": "String",
                "Length": "2",
                "Required": "True",
                "Description": "Per"
        }
}

1 回答

  • 0

    您可以执行以下操作从 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)))
    

相关问题