2016-12-10 6 views
0

私は別々のtrainとtest csvファイルを使用しています。 80,000,000行Pyspark NaiveBayesはCsvファイルへの予測出力をモデル化しました

NaiveBayesモデルcodes-

# Reading files 
data="C:/csv/train2004.txt" 
test="C:/csv/ascii20041.asc" 
#Data into RDD 
train=sc.textFile(data).map(lambda x: x.split(",")) 
test=sc.textFile(test).map(lambda y: y.split(" ")) 

#extract header 
header = train.first() 
header1 = test.first() 
print(header) 
print(header1) 

#Removing Header Row 
train = train.filter(lambda Row: Row!=header) 
#test=test.filter(lambda Row: Row!=header) 
print(train.first()) 
print(test.first()) 
train = train.map(lambda x: x[4:17]) 
test = test.map(lambda x: x[3:16]) 
print(train.first()) 
print(test.first()) 

# Reading required column 
train = train.map(lambda x: LabeledPoint(x[0],x[1:13])) 
test = test.map(lambda y: LabeledPoint(y[0],y[1:13])) 
print(train.first()) 
print(test.first()) 

#Naive Bayes Model training 
model = NaiveBayes.train(train, 1.0) 

#Prediction and save as Test file 
predictionAndLabel = test.map(lambda p: (model.predict(p.features), p.label)) 
print(predictionAndLabel.first()) 
predictionAndLabel.saveAsTextFile('c:/csv/mycsv.csv') 

#Accuracy Checking 
accuracy = 1.0 * predictionAndLabel.filter(lambda (x, v): x == v).count()/test.count() 
print('model accuracy {}'.format(accuracy)) 

ERROR:

An error occurred while calling o5072.saveAsTextFile. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 365.0 failed 1 times, most recent failure: Lost task 0.0 in stage 365.0 (TID 460, localhost)

はまだ私は問題に直面しています:。

  1. 省 'predictAndLabel' 'saveAsTest' をテキストに出力を予測しましたファイル。
  2. 行番号の参照を使用して、testAndLabel結果とテスト入力を結合します。この2行で

答えて

0

train = train.map(lambda x: LabeledPoint(x[0], x[1:13])) 
test = test.map(lambda y: LabeledPoint(y[0], y[1:13])) 

あなたは有効な入力をしませ再LabeledPointに文字列のリストを渡します。それは、数値型

  • numpyのarray
  • リスト
  • pyspark.mllib.linalg.SparseVector
  • scipy.sparse column matrix

でなければなりません。

+0

こんにちはJames Z、私は結果を得るために同じように操作するので、任意のコード例を提供できますか? – Ram

関連する問題