問題タブ [pyspark-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3562 参照

python - Iterating List of SQL.Row with PySpark

I have a Spark.SQL.Row that looks something like this:

#xA;

I'd like to get the value from each of the nested rows using something like:

#xA;

The problem is that when I iterate, the entire row is converted into tuples,

#xA;

and I lose the schema. Is there a way to iterate and retain the schema for the list of rows?

0 投票する
1 に答える
1332 参照

apache-spark - 予期しない結果をもたらすSpark SQLウィンドウ関数/lag()

EDIT:さらにトラブルシューティングを行った後、次のことがわかりました-クエリにラグ(event_time)を追加して、クエリが収集している日付を確認し、同様に奇妙な結果を得ています:

一部の device_id では、これは期待どおりに返されますが、一部の device_id では次が返されます。

これは、device_id の最初の 2 つのイベントのタイムスタンプが同じ場合に発生するようです。うまくいけば、それは誰かに手がかりを与えるでしょうか?


OP

テーブル内の 2 つの後続イベント間の時間の長さを判断するために、Spark SQL で lag() 関数を使用しようとしています。重要な列は、device_id (テキスト列)、unix_time (数値のタイムスタンプ)、および行ごとに一意の event_id です。

私が実行しているクエリ:

Postgres では、これにより期待される結果が得られます - ただし、Pyspark で実行すると、同じタイムスタンプを持つ 2 つのイベントが発生するたびに、seconds_since_last_event が大きな数として計算されます。つまり、-1435151676846888 または -1431583545415023 または 25534これらの数字はから来ています。

次のように、クエリに if() ステートメントを追加してみました

しかし、私は同じ結果を得ています。これを引き起こしている可能性のあるアイデアはありますか?

0 投票する
3 に答える
46409 参照

python - Pysparkデータフレーム:別の列をグループ化しながら列を合計する

次のようなデータフレームがあります

私がやりたいことは、最初の列の異なる値ごとに、2 番目の列の対応する値の合計を計算することです。私は次のコードでこれをやってみました:

出力を与える

それが正しいことをしているかどうかはわかりません。最初の列の情報も表示されないのはなぜですか? 回答ありがとうございます

0 投票する
1 に答える
9662 参照

apache-spark - gzip圧縮されたcsvファイルをpysparkにロードするにはどうすればよいですか?

ファイル名が で終わらず.gz、他のプログラムと共有されているため、元に戻すことができません。

file1.log.gz.processed単なるcsvファイルです。しかし、どうすればpyspark、できれば で読むことができpyspark.sqlますか?

形式と圧縮を指定しようとしましたが、正しいキー/値が見つかりませんでした。例えば、

sqlContext.load(fn, format='gz')

うまくいきませんでした。Spark はファイルを扱うことができましたがgz、ファイル名からコーデックを判別しているようです。例えば、

sc.textFile(fn)

ファイルがで終わる場合は機能しますが.gz、私の場合はそうではありません。

正しいコーデックを使用するように Spark に指示するにはどうすればよいですか? ありがとうございました!

0 投票する
1 に答える
896 参照

apache-spark - spark SQL GROUP BY 集計で「リスト インデックスが範囲外です」というエラーが発生する

Spark 1.5.0 に 2 つの列を持つデータフレームがあります。次のクエリは正しく機能します。 sqlContext.sql("select id, value from table").show()

しかし、集計を行うと失敗します:

sqlContext.sql("select id, count(value) from table group by id").show()

エラーを返します:

WARN TaskSetManager: Lost task 13.0 in stage 10.0: Traceback...

IndexError: list Index out of range

countは意図的に間違った型の可能性を排除するために使用しました。すべての列は文字列と見なされます (一部は数値ですが)。私はそれを間違って呼んでいますか?

0 投票する
4 に答える
4071 参照

python - 既存のスキーマを保持しながら行から DataFrame を作成する方法は?

map を呼び出すかmapPartition、関数が PySpark から行を受け取る場合、ローカルの PySpark または Pandas DataFrame を作成する自然な方法は何ですか? 行を結合してスキーマを保持するものはありますか?

現在、私は次のようなことをしています: