gpt4 book ai didi

arrays - 在非空 WrappedArray 上过滤数据框

转载 作者:行者123 更新时间:2023-12-04 16:30:50 26 4
gpt4 key购买 nike

我的问题是我必须在一个列表中找到这些不是空的。当我使用过滤器函数不为空时,我也得到每一行。

我的程序代码如下所示:

...    
val csc = new CassandraSQLContext(sc)
val df = csc.sql("SELECT * FROM test").toDF()

val wrapped = df.select("fahrspur_liste")
wrapped.printSchema

栏目 fahrspur_liste包含包装的数组和我必须分析的这一列。当我运行代码时,我为我的包装数组和这些条目获得了这个结构:
    root
|-- fahrspur_liste: array (nullable = true)
| |-- element: long (containsNull = true)

+--------------+
|fahrspur_liste|
+--------------+
| []|
| []|
| [56]|
| []|
| [36]|
| []|
| []|
| [34]|
| []|
| []|
| []|
| []|
| []|
| []|
| []|
| [103]|
| []|
| [136]|
| []|
| [77]|
+--------------+
only showing top 20 rows

现在我想过滤这些行,以便我只有条目 [56],[36],[34],[103], ...

我怎样才能编写一个过滤器函数,我只得到这些包含一个数字的行?

最佳答案

我认为您不需要在这里使用 UDF。

您可以使用 size 方法并过滤所有数组大小为 0 的行

df.filter(""" size(fahrspur_liste) != 0 """)

关于arrays - 在非空 WrappedArray 上过滤数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46233136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com