zoukankan      html  css  js  c++  java
  • 关于spark中DatatFrame函数操作中isin方法的使用

    需求:

      1、需要从一张mysql数据表中获取并筛选数据

      

      2、通过spark将该表读进来,形成一个df:DataFrame,有一个集合

        val list = List[String]("小李", "小王", "4", "5", "7")

      3、需要从df中进行筛选出来name在list中的值    

        df.where('name.isin(list)).show()  

      结果:   

      

      然而,isin(),看源码:

      

      里面需要的是一个可边长参数,我们想当然的把它当成了一个集合,此时不能将整个list传进去,但是我又要实现包含查询,但是又不想通过for循环遍历进行union的方式(这种方式是可以实现的,也就是说根据条件匹配list中的第一个值,然后将其定义成var,然后在遍历list中的每一个值作为条件,最后将其union起来,很笨,我一开始就这么干的),此时有一个新的办法,就是讲list改为list:_*

      df.where('name.isin(list:_*)).show()

      结果:

        

     搞定!!!

    记录一下。

    
    

       

      
     
  • 相关阅读:
    nmp部署(Nginx Mariadb Php-fpm)
    通过能别的主机连接yum库
    基于ftp服务实现yum网络共享
    nginx做代理部署WordPress
    练习题
    php-fpm包的安装与配置
    安装mariadb并修改配置文件
    mysql的简单操作
    telnet IP:ERROR
    加固mysql服务器
  • 原文地址:https://www.cnblogs.com/Gxiaobai/p/10683001.html
Copyright © 2011-2022 走看看