繁体   English   中英

如何使用 Spark Scala 将 CSV 行拆分为元组

[英]How to split CSV lines into tuples with Spark Scala

这是我想通过 Scala 检索的数据。 数据如下所示: userId,movieId 1,1172 1,1405 1,2193 1,2968 2,52 2,144 2,248

首先我想跳过第一行,然后通过 split(",") 拆分用户和电影并映射到 (userID,movieID)

这是我第一次尝试 Scala,一切都让我发疯。 我写了这段代码来跳过第一行并拆分

rdd.mapPartitionsWithIndex{ (idx, iter) => 
if (idx == 0) 
    iter.drop(1) 
else     
    iter }.flatMap(line=>line.split(","))

但结果是这样的:

    1
    1172
    1
    1405
    1
    2193
    1
    2968
    2
    52

我想这是因为 mapPartitionsWithIndex 有没有办法在不改变结构的情况下正确跳过标题?

啊,你的问题不是关于标题,而是关于如何将行拆分为(userid,movieid)? 而不是.flatMap(line=>line.split(","))你应该试试这个:

.map(line => line.split(",") match { case Array(userid, movieid) => (userid, movieid) })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM