Scala/RDD :如何将元组的值与同一元组中的值列表进行比较
Scala/RDD : How to compare a value of tuple with a list of values in the same tuple
我有如下数据
val t=((1,List(1,2,3,4)),(2,List(1,2,3,4)),(3,List(1,2,3,4)),(4,List(1,2,3,4)))
我想要这样的输出:
1--1
2--2
3--3
4--4
有人可以通过使用 scala 或 spark core 来帮助我吗?
试试这个:
val spark = SparkSession.builder()
.appName("app_name")
.master("local[2]")
.getOrCreate()
import spark.implicits._
val df = spark.sparkContext.parallelize(Seq((1,List(1,2,3,4)),(2,List(1,2,3,4)),(3,List(1,2,3,4)),(4,List(1,2,3,4))))
df.map{
case (id, list) => s"${id}--${list(id - 1)}"
}.toDF().show()
另一种使用RDD的方式:
输入:
(1,List(1, 2, 3, 4))
(2,List(1, 2, 3, 4))
(3,List(1, 2, 3, 4))
(4,List(1, 2, 3, 4))
t.map(x => s"""${x._1} -- ${if(x._2.contains(x._1)) x._1}""").collect.foreach(println)
输出:
1 -- 1
2 -- 2
3 -- 3
4 -- 4
我有如下数据
val t=((1,List(1,2,3,4)),(2,List(1,2,3,4)),(3,List(1,2,3,4)),(4,List(1,2,3,4)))
我想要这样的输出:
1--1
2--2
3--3
4--4
有人可以通过使用 scala 或 spark core 来帮助我吗?
试试这个:
val spark = SparkSession.builder()
.appName("app_name")
.master("local[2]")
.getOrCreate()
import spark.implicits._
val df = spark.sparkContext.parallelize(Seq((1,List(1,2,3,4)),(2,List(1,2,3,4)),(3,List(1,2,3,4)),(4,List(1,2,3,4))))
df.map{
case (id, list) => s"${id}--${list(id - 1)}"
}.toDF().show()
另一种使用RDD的方式:
输入:
(1,List(1, 2, 3, 4))
(2,List(1, 2, 3, 4))
(3,List(1, 2, 3, 4))
(4,List(1, 2, 3, 4))
t.map(x => s"""${x._1} -- ${if(x._2.contains(x._1)) x._1}""").collect.foreach(println)
输出:
1 -- 1
2 -- 2
3 -- 3
4 -- 4