Scala函数不返回值
我想我理解隐式回报的规则,但我不明白为什么没有设置splithead。此代码通过Scala函数不返回值,scala,apache-spark,Scala,Apache Spark,我想我理解隐式回报的规则,但我不明白为什么没有设置splithead。此代码通过 val m = new TaxiModel(sc, file) 然后我期待 m.splithead 给我一个数组字符串。注意head是一个字符串数组 import org.apache.spark.SparkContext import org.apache.spark.rdd.RDD class TaxiModel(sc: SparkContext, dat: String) { val rawDat
val m = new TaxiModel(sc, file)
然后我期待
m.splithead
给我一个数组字符串。注意head是一个字符串数组
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
class TaxiModel(sc: SparkContext, dat: String) {
val rawData = sc.textFile(dat)
val head = rawData.take(10)
val splithead = head.slice(1,11).foreach(splitData)
def splitData(dat: String): Array[String] = {
val splits = dat.split("\",\"")
val split0 = splits(0).substring(1, splits(0).length)
val split8 = splits(8).substring(0, splits(8).length - 1)
Array(split0).union(splits.slice(1, 8)).union(Array(split8))
}
}
foreach
只计算表达式,在迭代时不收集任何数据。您可能需要map
或flatMap
(参见文档)
foreach
只计算表达式,在迭代时不收集任何数据。您可能需要map
或flatMap
(参见文档)
还可以考虑一个用于理解的示例(在本例中,将其分解为
flatMap
)
证明等同于以下任何一项
splits(0).drop(1)
splits(0).tail
还可以考虑一个用于理解的示例(在本例中,将其分解为
flatMap
)
证明等同于以下任何一项
splits(0).drop(1)
splits(0).tail
当您不确定自己写了什么时,请添加显式类型信息(
val slithead:Array[String]=…
),并让编译器告诉您做错了什么。s/Scala函数/Your函数/
这是个好主意,谢谢您不确定自己写了什么时,请添加显式类型信息(val slithead:Array>)[String]=…
)并让编译器告诉您做错了什么。s/Scala function/Your function/
这是个好主意,谢谢
splits(0).substring(1, splits(0).length)
splits(0).drop(1)
splits(0).tail