2016-08-24 3 views
0

Я реализовал этот код:Ошибка при анализе строки из данных в класс. Спарк 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: ошибка: несоответствие типов; найдено: Строка required: Long

Кто-нибудь знает, почему я получаю эту ошибку? Я делаю анализ социальной сети по схеме, которую я поставил выше.

Большое спасибо!

ответ

0

Вы создаете массив из «,» разделенных значений, который возвращает массив String. Передайте его соответствующему типу, прежде чем назначать аргументы класса case.

val line = str.split(",") 
line(0).toLong 
Смежные вопросы