簡體   English   中英

使用Scala在Apache Spark中連接不同RDD的數據集

[英]Concatenating datasets of different RDDs in Apache spark using scala

有沒有辦法在Spark中串聯兩個不同RDD的數據集?

要求是-我使用具有相同列名的scala創建兩個中間RDD,需要將兩個RDD的這些結果組合在一起並緩存該結果以訪問UI。 如何在此處合並數據集?

RDD的類型為spark.sql.SchemaRDD

我認為您正在尋找RDD.union

val rddPart1 = ???
val rddPart2 = ???
val rddAll = rddPart1.union(rddPart2)

示例(在Spark-shell上)

val rdd1 = sc.parallelize(Seq((1, "Aug", 30),(1, "Sep", 31),(2, "Aug", 15),(2, "Sep", 10)))
val rdd2 = sc.parallelize(Seq((1, "Oct", 10),(1, "Nov", 12),(2, "Oct", 5),(2, "Nov", 15)))
rdd1.union(rdd2).collect

res0: Array[(Int, String, Int)] = Array((1,Aug,30), (1,Sep,31), (2,Aug,15), (2,Sep,10), (1,Oct,10), (1,Nov,12), (2,Oct,5), (2,Nov,15))

我有同樣的問題。 要按行而不是列進行合並,請使用unionAll:

val rddPart1= ???
val rddPart2= ???
val rddAll = rddPart1.unionAll(rddPart2)

我在閱讀數據框的方法摘要后找到了它。 有關更多信息, 訪問: https : //spark.apache.org/docs/latest/api/java/org/apache/spark/sql/DataFrame.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM