我开始在spark上学习Scala并尝试做ETL。 我尝试过滤数据帧,其字符串应由空格族分成4列。
这就是我试过的
df.where(split(df("item"), "\\s+").length == 4).show()
它显示错误value length is not a member of org.apache.spark.sql.Column
我看了documentation并发现它返回了Column类,所以它肯定没有length属性。
我被困在上面并且不知道如何解决它,我用谷歌搜索它但只找到this。
我想要的是根据分割长度进行过滤,我也尝试lookup分割返回但我不知道使用了哪种分割功能。
你能告诉我吗
1.它使用的分割功能是什么?
2.如何过滤分裂字符串的行长度为4?
由于
答案 0 :(得分:1)
您可以使用size
功能
import org.apache.spark.sql.functions._
df.where(size(split($"item" ,"\\s+")) === 4)