Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据类型不匹配:无法为Pyspark struct字段强制转换struct_Python_Apache Spark_Pyspark_Apache Spark Sql_Schema - Fatal编程技术网

Python 数据类型不匹配:无法为Pyspark struct字段强制转换struct

Python 数据类型不匹配:无法为Pyspark struct字段强制转换struct,python,apache-spark,pyspark,apache-spark-sql,schema,Python,Apache Spark,Pyspark,Apache Spark Sql,Schema,我面临一个例外,我有一个数据框,其中一列hid_标记为struct datatype,我的要求是通过将hid_标记的列附加到结构字段名来更改hid_标记的结构模式,如下所示。我遵循以下步骤并获得数据类型不匹配:无法转换结构异常 你能告诉我我错过了什么吗 df2=df.select(col("hid_tagged").cast(transform_schema(df.schema))) org.apache.spark.sql.AnalysisException:无法解析&3

我面临一个例外,我有一个数据框,其中一列hid_标记为struct datatype,我的要求是通过将hid_标记的列附加到结构字段名来更改hid_标记的结构模式,如下所示。我遵循以下步骤并获得数据类型不匹配:无法转换结构异常

你能告诉我我错过了什么吗

df2=df.select(col("hid_tagged").cast(transform_schema(df.schema)))
org.apache.spark.sql.AnalysisException:无法解析&39`hid_标签`&39;由于数据类型不匹配:无法强制转换结构&

我能够使用以下udf生成预期的结构模式更改:

架构转换的自定义项:

源结构模式:

预期的结构模式:

试试这个:

df2 = df.select(col("hid_tagged").cast(transform_schema(df.schema)['hid_tagged'].dataType))
transform_schemadf.schema返回整个数据帧的转换模式。在强制转换之前,您需要选择hid_标记列的数据类型

hid_tagged:struct
    field_1:long
    field_2:long
    field_3:string
    field_4:array
        element:string
    field_5:string
    field_6:string
    field_7:long
    field_8:long
    field_9:long
    field_10:boolean
    field_11:string
    field_12:long
    field_13:long
    field_14:long
    field_15:long
    field_16:long
    field_17:long
    field_18:long
    field_19:long
    field_20:long
hid_tagged:struct
    hid_tagged_field_1:long
    hid_tagged_field_2:long
    hid_tagged_field_3:string
    hid_tagged_field_4:array
        element:string
    hid_tagged_field_5:string
    hid_tagged_field_6:string
    hid_tagged_field_7:long
    hid_tagged_field_8:long
    hid_tagged_field_9:long
    hid_tagged_field_10:boolean
    hid_tagged_field_11:string
    hid_tagged_field_12:long
    hid_tagged_field_13:long
    hid_tagged_field_14:long
    hid_tagged_field_15:long
    hid_tagged_field_16:long
    hid_tagged_field_17:long
    hid_tagged_field_18:long
    hid_tagged_field_19:long
    hid_tagged_field_20:long
df2 = df.select(col("hid_tagged").cast(transform_schema(df.schema)['hid_tagged'].dataType))