数据框按一列的分割长度

时间:2018-04-20 06:38:47

标签: scala apache-spark

我开始在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?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用size功能

import org.apache.spark.sql.functions._

df.where(size(split($"item" ,"\\s+")) === 4)