我正在尝试将rdd[string]转换为rdd[picture],但无法完成。如果我能将rdd转换成rdd[picture],我将使用def hasvalidcountry检查picture的纬度和经度值是否有效。之后,我将尝试检查用户标记是否与picture类中的def hastags有效。我遇到的问题是:
找到隐式转换:行⇒ augmentstring(行):scala.collection.immutable.stringops
类型不匹配;找到:需要字符串:数组[string]
value interestingpics不是数组的成员[nothing]可能的原因:“value interestingpics”之前可能缺少分号?
我的目的是选择具有有效国家和标签的行,并将所有行转换为新的rdd[picture]类。
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)
2条答案
按热度按时间r3i60tvu1#
举例来说,这是可行的:
更复杂的例子是从带有数组的文件读入rdd。数组需要分隔符。
一些示例代码,但使用列表,否则您会看到
array addresses
,这就是那些奇怪的弦,这里聪明人的礼遇:我的建议是使用df和分裂的东西,然后更容易。还有,操纵
rdd
通过转换,然后case class
他迷路了。带有df api的数组没有这样的问题。weylhg0b2#
在“蓝色幻影”的帮助下,我有了一个解决问题的办法。非常感谢你。