Используя python и pyspark, я создаю новый фрейм данных структуры. Как я могу проверить, если в этой структуре нет вложенных полей, а если нет, удалите их?
В приведенном ниже коде есть две структуры color и Time. Я хочу проверить, является ли один из них NULL, а затем удалить его. Код
df1 = sqlCtx.createDataFrame ([Row (Row (5, 9, Row (12)), Row (2, True))], схема)
df = df1.withColumn("data",
struct(
struct(
struct(struct(lit(2).alias("b3711"),
lit(2).alias("b3712")).alias("b371"),
(when(col("x2.field3").cast(IntegerType())== lit(1),
struct(struct(col("x1.field1").alias("dark"),).alias('Black')
,col("x1.field1").alias("cl"))).alias("Color")),
(when(col("x2.field3").cast(IntegerType())== lit(2),
struct(col("x1.field1").alias("Q1"),
col("x1.field1").alias("T1"))).alias("Times"))
).alias("b37")).alias("b3")
)).drop('x1','x2')
<DATA>
<T1>Numerical</T1>
<IT>Y</IT>
<color>
<black>v</black>
</color>
<Time/>
</DATA>
Я думал о подсчете предметов по цвету и времени. Я сделал строку ниже, но это не то, что я хочу. У кого есть идея
count(data.T1.Time)