0
no1 1|3|4 no2 4|5|6
以下のようにテキストデータを持っていると私は、スパークRDDとScalaの言語を使用して以下のように上記のデータを変換したいです。
no1 1 no1 3 no1 4 no2 4 no2 5 no2 6
私はSparkとScalaの新機能です。そして私はこれを行う例を見つけることができません。
no1 1|3|4 no2 4|5|6
以下のようにテキストデータを持っていると私は、スパークRDDとScalaの言語を使用して以下のように上記のデータを変換したいです。
no1 1 no1 3 no1 4 no2 4 no2 5 no2 6
私はSparkとScalaの新機能です。そして私はこれを行う例を見つけることができません。
RDD APIよりも将来のスパークバージョンでAPIを重視するデータフレームとしてファイルを読み込むことをお勧めします。あなたのコメントのための
val df = Seq(("no1", "1|3|4"), ("no2", "4|5|6")).toDF("A", "B")
// df: org.apache.spark.sql.DataFrame = [A: string, B: string]
df.show
+---+-----+
| A| B|
+---+-----+
|no1|1|3|4|
|no2|4|5|6|
+---+-----+
df.withColumn("B", explode(split($"B", "\\|"))).show
+---+---+
| A| B|
+---+---+
|no1| 1|
|no1| 3|
|no1| 4|
|no2| 4|
|no2| 5|
|no2| 6|
+---+---+
感謝:データフレームと、あなたが求めているタスクが
split
とexplode
機能と非常に簡単です。データtxtファイルがあり、それを入力したい場合(手動で入力するのではなく)、ユーザー入力ファイルのコマンドをどのように達成するのですか? – sclee1スパークを学習して@ sclee1。私は臆病ではありません。質問のシーケンスからあなただけのアプリケーションを[SO]に書くことは期待できません。 Sparkチュートリアルでは、ファイルからの読み上げについて説明します。 –
スパークのバージョンによっては、ファイルの読みが異なります。 spark 2+の場合、 'spark.read.option(" header "、" true ")オプション(" inferSchema "、" true ")csv(あなたのファイル)'を使いやすくしています。 – Psidom