簡體   English   中英

如何將 RDD 數組字符串轉換為數據幀

[英]How to convert an RDD array string to a dataframe

請幫我將下面的 IP 地址的 RDD 數組轉換為數據幀。

(完全披露:我幾乎沒有使用 RDD 的經驗)

RDD創建:

val SCND_RDD = FIRST_RDD.map(kv => kv._2).flatMap(r => r.get("ip")).map(o => o.asInstanceOf[scala.collection.mutable.Map[String, String]]).flatMap(ip => ip.get("address"))

SCND_RDD.take(3)

結果:

SCND_RDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[33] at flatMap at <console>:38

res87: Array[String] = Array(5.42.212.99, 51.34.21.60, 63.99.831.7)`

我的 rdd<->dataframe 轉換嘗試:

case class X(callId: String)

val userDF = SCND_RDD.map{case Array(s0)=>X(s0)}.toDF()

這是我得到的錯誤

defined class X

<console>:40: error: scrutinee is incompatible with pattern type;

 found   : Array[T]
 required: String
       val userDF = NIPR_RDD22.map{case Array(s0)=>X(s0)}.toDF()

我留下的評論是一個重復的問題,可能會對您有所幫助。

但在這里,我也離開了我的審判。

val rdd = sc.parallelize(Array("test", "test2", "test3"))
rdd.take(3)

//res53: Array[String] = Array(test, test2, test3)

val df = rdd.toDF()
df.show

+-----+
|value|
+-----+
| test|
|test2|
|test3|
+-----+

暫無
暫無

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

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