填充嵌套结构的元素

时间:2019-12-30 14:05:09

标签: python pyspark syntax-error pyspark-sql aws-glue

schema = StructType(
[
    StructField('Info1',
        StructType([
            StructField('A1',
                   StructType([        
                        StructField('A11', IntegerType(),True),
                        StructField('A12', IntegerType(),True)
            ])
 ),
            StructField('A2', IntegerType(),True)
        ])
 )
df = sqlCtx.createDataFrame([],schema)
#Creation of df1
df1 = spark.createDataFrame(
[Row(
 x1=Row(field1=10, field2=1.5, x12=Row(field5='tt')), 
 x2=Row(field3="one",field4=False)
)])

现在我所需要的就是Info1的A11将获得x1.field2的值。

df = sqlCtx.createDataFrame(df1.rdd.map(lambda x: Row(Info1.A1=Row(A11=int(x.x1.field2), A2=None))), schema)

但是我得到这个错误 SyntaxError:关键字不能是表达式

请提出任何解决此问题的想法。??

1 个答案:

答案 0 :(得分:0)

(在我看来)第一个嫌疑犯是将Row嵌套在​​Row中。而且我想可以使用Python数据类型(列表和命名元组)简单地创建行。

相关问题