Итерация по вложенному элементу в искре - PullRequest
0 голосов
/ 30 мая 2018

У меня есть фрейм данных со следующей схемой: -

scala> final_df.printSchema
root
 |-- mstr_prov_id: string (nullable = true)
 |-- prov_ctgry_cd: string (nullable = true)
 |-- prov_orgnl_efctv_dt: timestamp (nullable = true)
 |-- prov_trmntn_dt: timestamp (nullable = true)
 |-- prov_trmntn_rsn_cd: string (nullable = true)
 |-- npi_rqrd_ind: string (nullable = true)
 |-- prov_stts_aray_txt: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- PROV_STTS_KEY: string (nullable = true)
 |    |    |-- PROV_STTS_EFCTV_DT: timestamp (nullable = true)
 |    |    |-- PROV_STTS_CD: string (nullable = true)
 |    |    |-- PROV_STTS_TRMNTN_DT: timestamp (nullable = true)
 |    |    |-- PROV_STTS_TRMNTN_RSN_CD: string (nullable = true)

Я выполняю следующий код, чтобы выполнить базовую очистку, но он не работает внутри prov_stts_aray_txt, по сути, он не идет внутри типа массива и не требует выполнения преобразования,Я хочу перебрать все вложенные поля (Плоское и вложенное поле в Dataframe и выполнить базовое преобразование.

for(dt <- final_df.dtypes){
  final_df = final_df.withColumn(dt._1,when(upper(trim(col(dt._1))) === "NULL",lit(" ")).otherwise(col(dt._1)))
}

, пожалуйста, помогите.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...