scala - Spark,Scala:如何从 Rdd 或数据框中删除空行?
问题描述
我在 scala 上使用 spark。我在 Rdd 中有一些空行。我需要将它们从 Rdd 中删除。
我试了一下:
val valfilteredRow = rddRow.filter(row => row!=null && row.length>0)
然而它没有用。
Rdd 中的行看起来像 [ with : valfilteredRow.collect().foreach(println) ]:
[,AAGGOO]
[,AAAOOO]
[,GGGGGII]
[]
[,UGGG]
解决方案
我不了解 Scala,但这是我在 Pyspark 中所做的:
假设您有一个输入文件,例如:
Banana,23,Male,5,11,2017
Dragon,28,Male,1,11,2017
Dragon,28,Male,1,11,2017
第二行是空的。
rdd = sc.textFile(PATH_TO_FILE).mapPartitions(lambda line: csv.reader(line,delimiter=','))
>>> rdd.take(10)
[['Banana', '23', 'Male', '5', '11', '2017'], [], ['Dragon', '28', 'Male', '1', '11', '2017'], ['Dragon', '28', 'Male', '1', '11', '2017']]
你可以看到第二个元素是空的,所以我们将通过计算元素的长度来过滤它,它应该大于一。
>>> rdd = sc.textFile(PATH_TO_FILE).mapPartitions(lambda line: csv.reader(line,delimiter=',')).filter(lambda line: len(line) > 1)
>>> rdd.take(10)
[['Banana', '23', 'Male', '5', '11', '2017'], ['Dragon', '28', 'Male', '1', '11', '2017'], ['Dragon', '28', 'Male', '1', '11', '2017']]
推荐阅读
- python - 在 Tkinter 中更新条目和标签小部件
- ruby-on-rails - Rails 路线出现但抛出 404 错误
- jmeter - Jmeter中的参数化文件/文件夹路径
- oracle - 通过 APEX 从数据库服务器下载文件
- vue.js - 设置 vue.config.js 文件以模拟生产设置(连接两个应用程序)
- vba - 使用 Find 和 Resize 转置值错误
- javascript - Streamlabs 甚至列出照片
- c# - 删除字符串数组中存在的字符串部分
- angular - Angular 应用程序无法在服务器端正确构建
- r - r2d3 可视化中的范围界定 - d3.selectAll 与 svg.selectAll