【发布时间】:2021-02-26 00:08:42
【问题描述】:
我正在尝试将 RDD[String] 转换为 RDD[Picture] 但无法做到。如果我能设法将 RDD 转换为 RDD[图片],我将使用 def hasValidCountry 检查图片元的纬度和经度值是否有效。之后,我尝试使用图片类中的 def hasTags 检查用户标签是否有效。我遇到的问题:
- 发现隐式转换:row ⇒ augmentString(row): scala.collection.immutable.StringOps
- 类型不匹配;发现:需要字符串:数组[字符串]
- value InterestingPics 不是 Array[Nothing] 的成员可能的原因:可能在 `value InterestingPics' 之前缺少分号?
我的意图是选择具有有效国家和标签的线路并将所有线路转换为新的 RDD[图片] 类。
ScalaFile1(我已经更新了 ScalaFile):
object Part2 {
def main(args: Array[String]): Unit = {
var spark: SparkSession = null
try {
spark = SparkSession.builder().appName("Flickr using dataframes").config("spark.master", "local[*]").getOrCreate()
val originalFlickrMeta: RDD[String] = spark.sparkContext.textFile("flickrSample.txt")
val InterestingPics = originalFlickrMeta.map(row => row.split('\t')).map(field => Picture(field(0).toString())
InterestingPics.collect
InterestingPics.take(5).foreach(println)
【问题讨论】:
-
如果您遵循以下准则,人们会发现回答您的问题会容易得多:stackoverflow.com/help/minimal-reproducible-example。您的示例在语法上不正确(例如,您缺少 3 个右大括号),因此您的示例会产生语法错误,而不是您在帖子中提到的错误。即使存在语法问题,您的 IDE 也可能会突出显示其他一些错误,但是当语法问题影响范围(例如缺少大括号)时,这不是很可靠,因此您真的想先修复语法。
标签: scala apache-spark rdd