問題タブ [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.
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?
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() ステートメントを追加してみました
しかし、私は同じ結果を得ています。これを引き起こしている可能性のあるアイデアはありますか?
python - Pysparkデータフレーム:別の列をグループ化しながら列を合計する
次のようなデータフレームがあります
私がやりたいことは、最初の列の異なる値ごとに、2 番目の列の対応する値の合計を計算することです。私は次のコードでこれをやってみました:
出力を与える
それが正しいことをしているかどうかはわかりません。最初の列の情報も表示されないのはなぜですか? 回答ありがとうございます
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 に指示するにはどうすればよいですか? ありがとうございました!
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
は意図的に間違った型の可能性を排除するために使用しました。すべての列は文字列と見なされます (一部は数値ですが)。私はそれを間違って呼んでいますか?
python - 既存のスキーマを保持しながら行から DataFrame を作成する方法は?
map を呼び出すかmapPartition
、関数が PySpark から行を受け取る場合、ローカルの PySpark または Pandas DataFrame を作成する自然な方法は何ですか? 行を結合してスキーマを保持するものはありますか?
現在、私は次のようなことをしています: