由於數據是這樣的:如何根據數據類型過濾數據?
val my_data = sc.parallelize(Array(
"Key1, foobar, 10, twenty, 20",
"Key2, impt, 11, sixty, 6",
"Key3, helloworld, 110, seventy, 9"))
我想過濾並創建一個key,value
RDD象下面這樣:
key1, foobar
key1, twenty
key2, impt
key2, sixty
key3, helloworld
key3, seventy
我已經試過
我想,我可以只需將數據放在一個表中並讓數據類型被推斷即可。
//is there a way to avoid writing to file???
my_data.coalesce(1).saveAsTextFile("/tmp/mydata.csv")
val df_mydata = sqlContext.read
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.load("/tmp/mydata.csv")
上面的工作,使我有一個正確的數據類型的表。但是,我不知道如何過濾數據類型,然後從中創建鍵/值對。
我還可以使用Character.isDigit
,而不是創建一個模式,但還需要知道如何篩選鍵/值對解決這將是
我是新來的斯卡拉和一般的火花。如果可能的話,你能否分解這個鏈式命令來解釋這些步驟的作用?我已確認您的解決方案正常運行,並感謝您的支持! –
@ spark-health-learn當然,我添加了對命令的解釋以及它們如何一起工作來接收結果。希望它能幫助你學習:)如果它對你有幫助,請點擊複選標記/ upvote接受答案。 – Shaido
這真的很有幫助。 'tail.map(t =>(key,t)''的最後一個命令讓我暫時不瞭解。 –