我是scala的新手,我想为一个数据集遍历三个for loo并执行一些分析。例如,我的数据如下所示:
Sample.csv
1,100,0,NA,0,1,0,Friday,1,5
1,100,0,NA,0,1,0,Wednesday,1,9
1,100,1,NA,0,1,0,Friday,1,5
1,100,2,NA,0,1,0,Friday,1,5
1,101,0,NA,0,1,0,Friday,1,5
1,101,1,NA,0,1,0,Friday,1,5
1,101,2,NA,0,1,0,Friday,1,5
1,102,0,NA,0,1,0,Friday,1,5
1,102,1,NA,0,1,0,Friday,1,5
1,102,2,NA,0,1,0,Friday,1,5
现在我读到如下内容:
val data = sc.textFile("C:/users/ricky/Data.csv")
现在我需要为scala中的前三列实现一个过滤器,以过滤整个数据的子集并进行一些分析。因此,我有一个值用于第1列(1),3个值用于第2列(100101102),3个值用于第3列(0,1,2)。所以现在我需要运行过滤器以提供整个数据的子集。使用下面这样的循环好吗
for {
i <- 1
j <- 100 to 102
k <- 1 to 2
}
它应该需要子集数据,比如
1,100,0,NA,0,1,0,Friday,1,5
1,100,0,NA,0,1,0,Wednesday,1,9
where i=1 ,j=100,and k=0
最多
1,102,2,NA,0,1,0,Friday,1,5
where i=1 ,j=102,and k=2
如何在scala中运行数据(从csv读取)。
1条答案
按热度按时间lhcgjxsq1#
从文本csv文件读取后,可以使用
filter
以筛选所需的数据这会给你一个结果
剩下的案子你也可以这么做
DataframeAPI
你可以用
dataframe
api的简单性,优化比rdd和更多。第一步是将csv读取到dataframe
作为你会有的
那你可以用
filter
rdd as中的api as你应该有
你甚至可以定义
schema
以获得所需的列名。编辑
回答你下面的评论,这完全取决于你的输出
我希望它是清楚的。