spark 2 自定义数据源 - 如何将数组列设置为空?

Posted

技术标签:

【中文标题】spark 2 自定义数据源 - 如何将数组列设置为空?【英文标题】:spark 2 custom data source - How to set an array column to null? 【发布时间】:2017-09-16 01:04:05 【问题描述】:

我有一个自定义 spark 数据源,数据来自 java 库。有些字段是 ArrayType,偶尔是 NULL。我尝试将数组字段设置为 None、null、lit(null)、Option(null),可能还有其他几个变体,并且在每种情况下,催化剂在尝试解析数组字段时都会抛出 NPE。

据我所知,Catalyst 不会在 ArrayConverter(来自 CatalystTypeConverters.scala)的 toCatalystImpl() 方法中检查 null。这是一个 Catalyst 错误,还是数据帧 ArrayType 字段有其他一些空编码?

【问题讨论】:

这个问题有关系吗? ***.com/questions/39734453/… 【参考方案1】:

我的错,我发现了问题(破解了错误的代码)。最后的答案似乎是“Option(null)”。我试过 None 和 lit(null: ),但都抛出了异常。

【讨论】:

以上是关于spark 2 自定义数据源 - 如何将数组列设置为空?的主要内容,如果未能解决你的问题,请参考以下文章

Spark:如何使用嵌套数组转置和分解列

Spark scala Dataframe:如何将自定义类型应用于现有数据框?

如何将 Spark Dataframe 列转换为字符串数组的单列

Spark SQL Windows:基于数组列创建数据框

如何将自定义列的数据上下文设置为 ItemsSource 项目类型?

使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]