如何在 Scala 中使用 Spark select 来自 RDD 文件行的多个元素
How to select several element from an RDD file line using Spark in Scala
我是 spark 和 scala 的新手,我想 select 数据集中的几列。
我使用以下方法将 RDD 中的数据转换为一个文件:
val dataset = sc.textFile(args(0))
然后我把我的线分开
val resu = dataset.map(line => line.split("[=12=]1"))
但是我在我的数据集中有很多特征,我只想保留其中的一些特征(第 2 列和第 3 列)
我试过这个(与 Pyspark 一起使用)但它不起作用。
val resu = dataset.map(line => line.split("[=13=]1")[2,3])
我知道这是一个新手问题,但是有人可以帮助我吗?谢谢。
在 Scala 中,为了访问特定的列表元素,您必须使用括号。
在你的例子中,你想要一个子列表,所以你可以试试 slice(i, j) 函数。它提取从索引 i 到 j-1 的元素。所以在你的情况下,你可以使用:
val resu = dataset.map(line => line.split("[=10=]1").slice(2,4))
希望对您有所帮助。
I just want to keep some of then (colums 2 and 3)
如果您想要 tuple
形式的第 2 列和第 3 列,您可以
val resu = dataset.map(line => {
val array = line.split("[=10=]1")
(array(2), array(3))
})
但是,如果您想要 array
形式的第 2 列和第 3 列,那么您可以
val resu = dataset.map(line => {
val array = line.split("[=11=]1")
Array(array(2), array(3))
})
我是 spark 和 scala 的新手,我想 select 数据集中的几列。
我使用以下方法将 RDD 中的数据转换为一个文件:
val dataset = sc.textFile(args(0))
然后我把我的线分开
val resu = dataset.map(line => line.split("[=12=]1"))
但是我在我的数据集中有很多特征,我只想保留其中的一些特征(第 2 列和第 3 列)
我试过这个(与 Pyspark 一起使用)但它不起作用。
val resu = dataset.map(line => line.split("[=13=]1")[2,3])
我知道这是一个新手问题,但是有人可以帮助我吗?谢谢。
在 Scala 中,为了访问特定的列表元素,您必须使用括号。
在你的例子中,你想要一个子列表,所以你可以试试 slice(i, j) 函数。它提取从索引 i 到 j-1 的元素。所以在你的情况下,你可以使用:
val resu = dataset.map(line => line.split("[=10=]1").slice(2,4))
希望对您有所帮助。
I just want to keep some of then (colums 2 and 3)
如果您想要 tuple
形式的第 2 列和第 3 列,您可以
val resu = dataset.map(line => {
val array = line.split("[=10=]1")
(array(2), array(3))
})
但是,如果您想要 array
形式的第 2 列和第 3 列,那么您可以
val resu = dataset.map(line => {
val array = line.split("[=11=]1")
Array(array(2), array(3))
})