再現性の高いApache Sparkのサンプルの作り方
質問
私は、いくつかの質問を読むのにかなりの時間を費やしてきました。 pyspark と spark-dataframe タグを使用していますが、投稿者が自分の質問を本当に理解するのに十分な情報を提供していないことがよくあります。私は通常、投稿者に MCVE を投稿するよう依頼しますが、入出力データのサンプルを見せるように依頼するのは、歯を抜くようなものです。
おそらく、問題の一部は、人々がspark-dataframe用のMCVEを簡単に作成する方法を知らないということです。私は、次のような spark-dataframe バージョンがあると便利だと思います。 このpandasの質問 のspark-dataframeバージョンがあれば、リンクできるガイドとして便利だと思います。
では、再現性のある良い例を作るにはどうしたらよいのでしょうか?
どのように解決するのか?
簡単に再現できる小さなサンプルデータを用意する。
少なくとも、投稿者はデータフレームとそれを簡単に作成するために使用できるコードについて、いくつかの行と列を提供する必要があります。簡単にというのは、カットアンドペーストという意味です。あなたの問題を実証するために、できるだけ小さくしてください。
以下のようなデータフレームがあります。
+-----+---+-----+----------+
|index| X|label| date|
+-----+---+-----+----------+
| 1| 1| A|2017-01-01|
| 2| 3| B|2017-01-02|
| 3| 5| A|2017-01-03|
| 4| 7| B|2017-01-04|
+-----+---+-----+----------+
のように、このコードで作成することができます。
df = sqlCtx.createDataFrame(
[
(1, 1, 'A', '2017-01-01'),
(2, 3, 'B', '2017-01-02'),
(3, 5, 'A', '2017-01-03'),
(4, 7, 'B', '2017-01-04')
],
('index', 'X', 'label', 'date')
)
希望する出力を表示する。
具体的な質問をし、希望する出力を示してください。
新しいカラムを作成する方法
'is_divisible'
という値を持つ
'yes'
の月の日であれば
'date'
に7日を加えたものが列の値で割り切れる場合は
'X'
,
と
'no'
でなければ?
希望する出力。
+-----+---+-----+----------+------------+
|index| X|label| date|is_divisible|
+-----+---+-----+----------+------------+
| 1| 1| A|2017-01-01| yes|
| 2| 3| B|2017-01-02| yes|
| 3| 5| A|2017-01-03| yes|
| 4| 7| B|2017-01-04| no|
+-----+---+-----+----------+------------+
出力の方法を説明する。
どのようにして目的の出力を得るのか、詳細に説明しましょう。計算例を示すとよいでしょう。
たとえば 1 行目では、X = 1、日付 = 2017-01-01 です。日付に7日を足すと、2017-01-08となります。日は8であり、8は1で割り切れるので、答えは「はい」です。
同様に、最後の行については、X = 7と日付= 2017-01-04です。日付に7を足すと、月の日として11が得られます。11 % 7 は 0 ではないので、答えは「いいえ」です。
既存のコードを共有する。
あなたが行ったこと、または試したことを教えてください。 すべて * を含めて、何をやったのか、何を試したのかを教えてください。また、エラーが発生した場合は、そのエラーメッセージも含めて、どこで困っているのかを教えてください。
(*スパークコンテキストを作成するコードを省くことはできますが、すべてのインポートを含める必要があります。)
という新しいカラムを追加する方法を知っています。
date
に 7 日を加えたものですが、月の日数を整数で取得するのに苦労しています。
from pyspark.sql import functions as f
df.withColumn("next_week", f.date_add("date", 7))
バージョン、インポートを含み、シンタックスハイライトを使用する
パフォーマンスチューニングの投稿には、実行計画を含めます。
- 詳細な情報は この回答 によって書かれた アルパー・トゥルカー .
- コンテキストに標準的な名前を使用するのに役立ちます。
spark 出力ファイルのパース
その他の注意事項
- 必ずお読みください 問い合わせ方法 と 最小限の、完全な、検証可能な例の作り方 を最初に作成します。
- 上にリンクされている、この質問に対する他の回答を読んでください。
- 良い、説明的なタイトルを持つ。
- 礼儀正しくしましょう。SOの人々はボランティアなので、礼儀正しくお願いしましょう。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン