由于数据是这样的:如何根据数据类型过滤数据?
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)''的最后一个命令让我暂时不了解。 –