Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spark SQL-动态选择Spark SQL中不为空的列_Sql_Scala_Apache Spark Sql - Fatal编程技术网

Spark SQL-动态选择Spark SQL中不为空的列

Spark SQL-动态选择Spark SQL中不为空的列,sql,scala,apache-spark-sql,Sql,Scala,Apache Spark Sql,我想选择包含非空值的列。假设我有一张桌子abc: SnapshotDate CreationDate Country Region CloseDate Probability BookingAmount RevenueAmount SnapshotDate1 CreationDate1 CloseDate1 null null null null null 25 882000 0

我想选择包含非空值的列。假设我有一张桌子abc:

SnapshotDate    CreationDate    Country Region  CloseDate   Probability BookingAmount   RevenueAmount   SnapshotDate1   CreationDate1   CloseDate1
        null            null       null   null       null   25  882000  0            null            null         null
        null            null       null   null       null   25  882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
        null            null       null   null       null   0   882000  0            null            null         null
然后我想只选择Probability、BookingAmount和RevenueAmount列,因为它们包含除null以外的一些值,而忽略只包含null值的列的其余部分

我试着做一些类似的事情- 从abc中选择*其中SnapshotDate!=null和CreationDate!=空和。。。。。 但这并没有帮助,因为它将查找每一行

注:- 是否有类似-sqlContext.sql(“当col1为null时选择case,然后不要选择它,否则选择它结束)x from abc”的内容

我正在使用spark 1.6.1

有办法吗


提前感谢

您可以收集非空值的第一行检查,并获取列的名称,然后在上一个数据帧上调用select。不可复制的