将数据中的一行解析为 class 时出错。星火库

Error when parsing a line from the data into the class. Spark Mllib

我已经实现了这段代码:

scala> import org.apache.spark._

scala> import org.apache.spark.rdd.RDD
import org.apache.spark.rdd.RDD

scala> import org.apache.spark.util.IntParam
import org.apache.spark.util.IntParam

scala> import org.apache.spark.graphx._
import org.apache.spark.graphx._

scala> import org.apache.spark.graphx.util.GraphGenerators
import org.apache.spark.graphx.util.GraphGenerators

scala> case class Transactions(ID:Long,Chain:Int,Dept:Int,Category:Int,Company:Long,Brand:Long,Date:String,ProductSize:Int,ProductMeasure:String,PurchaseQuantity:Int,PurchaseAmount:Double)
defined class Transactions

当我尝试 运行 时:

def parseTransactions(str:String): Transactions = {
     | val line = str.split(",")
     | Transactions(line(0),line(1),line(2),line(3),line(4),line(5),line(6),line(7),line(8),line(9),line(10))
     | }

我收到此错误::38: 错误:类型不匹配; 发现:字符串 要求:长

有人知道我为什么会收到这个错误吗?我正在对上面的模式进行社交网络分析。

非常感谢!

您正在从 returns 字符串数组的“,”分隔值创建数组。在分配给 case class 参数之前将其转换为适当的类型。

val line = str.split(",")
line(0).toLong