0
public static Dataset<LabeledPoint> convertRDDStringToLabeledPoint(Dataset<String> data,String delimiter) { 
    Dataset<LabeledPoint> labeledPointData = data.map(
      (data1)->{ 
       String splitter[] = data1.split(delimiter); 
       double[] arr = new double[splitter.length - 1]; 
       IntStream.range(0,arr.length).forEach(i->arr[i]=Double.parseDouble(splitter[i+1])); 
       return new LabeledPoint(Double.parseDouble(splitter[0]), Vectors.dense(arr)); 
      },Encoders.???); 
    return labeledPointData; 
} 

如何設置LabeledPointData的編碼器,它是Double,Double的向量的組合。如何設置用於創建DataFrame的編碼器?如何在Spark中爲Row,LabeledPointData設置編碼器?

回答

1

LabeledPoint是斯卡拉的案例類,所以我認爲它是Encoders.product[LabeledPoint]

(我不知道如何用Java編寫它)

相關問題