よく忘れるシリーズ Apache Spark版
1. はじめに
筆者が忘れるシリーズのSpark版です。
どうも、JavaでのDataFlameのJoinの仕方を忘れてしまいます。
2. 環境
本記事は、以下の環境で動作は確認しています。
・Amazon Linux
・Ubuntu
3. いつも忘れてしまう方々
コーディングが止まってしまい、困っちゃいます。
Import
以下をインポートしましょう。
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row
Filter
条件を絞って、行を出力します。
Dataset<Row> dfResult = dfSource.filter("{列名}='{条件}'");
もちろん ANDしたり、
Dataset<Row> dfResult = dfSource
.filter("{列名}='{条件}' AND {列名}='{条件}'");
ORやNOTしたりもできます。
Dataset<Row> dfResult = dfSource
.filter("{列名}='{条件}' OR {列名}<>'{条件}'");
Join
Joinです。
Dataset<Row> dfResult = dfSource1
.join(dfSource2,
dfSource1.col("{列名}").equalTo(dfSource2.col("{列名}")))
列名の変更
Joinして列名が同じになったりした時に、列名を変えれます。
Dataset<Row> dfResult = dfSource1
.withColumnRenamed("{旧列名}", "{新列名}");
重複列の削除
JoinするとID項目なんかが二重になっちゃいますが、それをひとつにしてくれます。
Dataset<Row> dfResult = dfResult.dropDuplicates("{新列名}");
もしくは
Dataset<Row> dfResult = dfResult.distinct();
4. 終わりに
個人的にですけど、Spark は Pythonで使うのが良いですかね。
お知らせ
筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。