在数组火花数据帧 2.4 的嵌套结构中提取多个元素

我正在读取镶木地板文件并尝试从数组结构的结构中提取元素。但是,当我使用 getItem() 时,空值返回空。这种模式在 Spark 1.6 中有效,但现在在 aws 胶水中使用 Spark 2.4,它似乎忽略了空值,只拉空。

输入是镶木地板,但我是用 JSON 格式编写的:

{
   "ExampleMessage":{
      "activity":{
         "exampleSport":[
            {
               "exampleRole":null
            },{
               "exampleRole":null
            },{
               "exampleRole":"Runner"
            }
         ]
      }
   }

尝试提取:

raw_df.select(col("ExampleMessage.activity").getItem("exampleSport").getItem("exampleRole"))

电流输出:

,Runner

期望的输出:

null,null,Runner
mayu_2010 回答:在数组火花数据帧 2.4 的嵌套结构中提取多个元素

试试下面的代码而不是 null 你会得到 None

raw_df.select(col("ExampleMessage.activity").getItem("exampleSport").getItem("exampleRole")).head()

输出为

 Row(ExampleMessage.activity AS `activity`.exampleSport.exampleRole=[None,None,'Runner'])
本文链接:https://www.f2er.com/278.html

大家都在问