2017-12-07 7 views
0

を使用して配列に変換して、私は、CSVは、以下のデータを含むファイルがあります。ロードCSVデータは、データフレームへとApacheスパーク(Java)の

1,2,5 
2,4 
2,3 

私は、配列

の文字列のDATAFRAME持つスキーマにロードしたいです

出力は以下のようになります。

[1, 2, 5] 
[2, 4] 
[2, 3] 

これは、ここでのScalaを使用して回答されています Spark: Convert column of string to an array

私はそれがJavaで起こるようにしたいです。
助けてください

+0

質問にはDSLが使用されています。それはJavaでもほぼ同じです。あなたは何かを書こうとしましたか?はいの場合、どのようなエラーがありましたか? – philantrovert

+0

私はRDDを読み込み、以下のようにそれにスキーマを添付しようとしていました: JavaRDD rowRDD = sparkSession.read()。textFile( "D:\\ sanjaya \\ OAWorkspace \\ spark-basics \\ src \\ main \\リソース\\ marketbasketdata.csv ") \t \t \t \t .javaRDD()マップ((機能。)記録 - > { \t \t \t \t \tのString []属性= record.split("、」)。 \t \t \t \t \t return RowFactory.create(Arrays.asList(attributes));
sanjaya

答えて

1

以下はJavaのサンプルコードです。 spark.read().text(String path)メソッドを使用してファイルを読み込み、split関数を呼び出す必要があります。

import static org.apache.spark.sql.functions.split; 

public class SparkSample { 
    public static void main(String[] args) { 
     SparkSession spark = SparkSession 
       .builder() 
       .appName("SparkSample") 
       .master("local[*]") 
       .getOrCreate(); 
     //Read file 
     Dataset<Row> ds = spark.read().text("c://tmp//sample.csv").toDF("value"); 
     ds.show(false);  
     Dataset<Row> ds1 = ds.select(split(ds.col("value"), ",")).toDF("new_value"); 
     ds1.show(false); 
     ds1.printSchema(); 
    } 
} 
関連する問題