【发布时间】:2019-06-16 13:57:04
【问题描述】:
在 Scala Spark 中,有几种方法可以导致数据分区/重新分区。其中包括partitionBy, coalesce, repartition, and textFile 以及具有分区计数作为参数的其他函数。下面,我使用textFile,其规格至少为 8 个分区。我不希望转换来撤消这些分区。对于要保留的分区,您需要persist 分区结果。但是,map 和 flatMap 等函数不会保留分区。我相信这可能会影响性能。 PairRDDS 具有维护分区的mapValues and flatMapValues。
DataSets and RDDs 是否有与map and flatMap 相同的功能不会破坏分区?
如果我把这一切都搞混了,RDD 和 DataSet 如何维护分区,记住 map 和 flatMap 操作是它们操作的关键。
val tweets:RDD[Tweet] = mySpark.sparkContext.textFile(path,8).map(parseTweet).persist()
val numerical_fields_Tweets:Dataset[Tweet] = tweets.toDS()
【问题讨论】:
标签: scala apache-spark rdd apache-spark-dataset