当前位置: 首页 > 知识库问答 >
问题:

空指针异常,同时转换dataframe到列表内udf

贺亦
2023-03-14

我正在阅读2个不同的. csv文件,其中只有以下列:

    val dF1 = sqlContext.read.csv("some.csv").select($"ID")
    val dF2 = sqlContext.read.csv("other.csv").select($"PID")

尝试搜索dF1(“ID”)中是否存在dF2(“PID”):

    val getIdUdf = udf((x:String)=>{dF1.collect().map(_(0)).toList.contains(x)})
    val dfFinal = dF2.withColumn("hasId", getIdUdf($"PID"))

这给了我空指针异常。但如果我在外部转换dF1并在udf中使用list,它就会工作:

    val dF1 = sqlContext.read.csv("some.csv").select($"ID").collect().map(_(0)).toList
    val getIdUdf = udf((x:String)=>{dF1.contains(x)})
    val dfFinal = dF2.withColumn("hasId", getIdUdf($"PID"))

我知道我可以使用连接来完成这项工作,但想知道空指针异常的原因是什么。

谢谢

共有1个答案

金赤岩
2023-03-14

请检查关于在另一个数据帧的转换中访问数据帧的问题。这正是你对UDF所做的,这在火花中是不可能的。解决方案是要么使用连接,要么在转换和广播之外收集。

 类似资料:
  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 我试图在列表视图的onItemClick中用另一个片段替换片段,我想将所选项目名称从列表片段发送到另一个片段,但它显示空指针异常 @覆盖onItemClick上的公共无效(AdapterView ar0,视图,int位置,长id){ 但是同样的概念在下面的按钮点击中工作

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几

  • 我是struts2框架的新手,当我点击submit按钮时,我得到了空指针预期值,注册表表单值没有传递给Bean类,我在Bean类中打印表单值,它打印了空值,我找不到我的错误,请帮助我。。 指数jsp Struts.xml 动作课 例外

  • 当HTML代码适合正在生成的一个页面时,我使用iText HTML到pdf,但当HTML代码太大时,它无法工作使用Java代码HTMLConverter.ConvertTopDF(htmlFile,PDFile);使用itext7 HTML2PDF-2.1.6是版本 Java代码 下面是工作的HTML代码 例外情况是