2017-05-26 5 views
0

でApacheのスパークをコード:1-の-kは、私はJavaを使用してApacheのスパークでカテゴリ機能に対応するために、私はスパークのマニュアルを参照し、このコードをテストしようとしているJavaの

SparkSession spark = SparkSession 
      .builder().master("local[4]") 
      .appName("1-of-K encoding Test") 
      .getOrCreate(); 
List<Row> data = Arrays.asList(
      RowFactory.create(0, "a"), 
      RowFactory.create(1, "b"), 
      RowFactory.create(2, "c"), 
      RowFactory.create(3, "a"), 
      RowFactory.create(4, "a"), 
      RowFactory.create(5, "c") 
    ); 
StructType schema = new StructType(new StructField[]{ 
new StructField("id", DataTypes.IntegerType, false,Metadata.empty()), 
new StructField("category", DataTypes.StringType, false, Metadata.empty()) 
    }); 
Dataset<Row> df = spark.createDataFrame(data, schema); 
StringIndexerModel indexer = new StringIndexer() 
.setInputCol("category") 
.setOutputCol("categoryIndex") 
.fit(df); 

しかし、私このエラーが発生しています。フィット関数を使用すると、任意のアイデアを持っていますか

enter image description here

呼び出すことができないのですか?

答えて

0

なぜあなたは長い経路でdfを作成していますか?より効率的な方法は次のようになります。出力が与え

import sparkSession.implicits._ 
    val df = sparkSession.sparkContext.parallelize(Seq((0, "a"), (1, "b"), (2, "c"), (3, "d"), (4, "e"), (5, "f"))).toDF("id", "category") 

    val newDf = new StringIndexer() 
    .setInputCol("category") 
    .setOutputCol("categoryIndex") 
    .fit(df) 
    .transform(df) 
    .show; 

+---+--------+-------------+ 
| id|category|categoryIndex| 
+---+--------+-------------+ 
| 0|  a|   2.0| 
| 1|  b|   3.0| 
| 2|  c|   4.0| 
| 3|  d|   5.0| 
| 4|  e|   0.0| 
| 5|  f|   1.0| 
+---+--------+-------------+ 
+0

ありがとうございました、それは今私の作品は、(私は、Apache MLIBドキュメントの例を見つけました) –

関連する問題