2016-07-11 5 views
-1

I持ってCSVファイルに次のデータ(実際には、私の実際のデータの方が大きいが、これは良い単純化である):カスタマイズ方法

ColumnA,ColumnB 
1,X 
5,G 
9,F 

私はそれ以下の方法を読んでいます、 urlは、ファイルの場所です:

読書のために
val rawData = sqlContext.read 
    .format("com.databricks.spark.csv") 
    .option("header", "true") 
    .option("inferSchema", "true") 
    .load(url) 

、私はその後https://github.com/databricks/spark-csv

を使用していますが、私はそれにマップを適用しています:

val formattedData = rawData.map(me => me("ColumnA") match { 
    //some other code 
    }) 

しかし、私はこのようなコラム参照していたとき:me("ColumnA")を私は型の不一致を取得しています:

Type mismatch, expected: Int, actual: String 

は、なぜこれが起こっていますか? rawDataのすべての行を地図にする必要はありませんか?

答えて

2

dataframの行でperticular列を参照する場合、これを行うにはいくつかの方法があります。 applyメソッドを使用している場合は、列のインデックスを渡す必要があります。 または名前で列を取得する場合は、RowのgetAs [T]関数を使用する必要があります。

ので、あなたが使用することができます。

me(0) 

または

me.getAs[T]("ColumnA") 

は、それはあなたを助けることを願っています。

関連する問題