問題タブ [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 投票する
2 に答える
11768 参照

apache-spark - Row 型を Vector に変換して KMeans にフィードする方法

df2 を kmeans にフィードしようとすると、次のエラーが発生します

私が得るエラー:

df2 は、次のように作成されたデータフレームです。

この 2 つの列を Vector に変換して KMeans にフィードするにはどうすればよいですか?

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

csv - CSV から作成されたデータフレームを MLlib Kmeans: IndexError: list index out of range にフィードする

私はspark csvを使用できないため、次のようにCSVからデータフレームを手動で作成しました:

私は2つの列だけが必要です:

[DenseVector([-6.2416, 106.7949]), DenseVector([-6.2443, 106.7956])]

これで、KMeans トレーニングの準備がすべて整ったようです。

しかし、私は次のエラーが発生します:

ALS.csv の最初の 3 行: location_history_id,user_id,latitude,longitude,address,created_at,valid_until,timezone_offset_secs,opening_times_id,timezone_id

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

python - PySpark: UDF がデータフレームで実行されていません

Azure の Jupyter で PySpark を使用しています。データフレームで UDF を使用してテストしようとしていますが、UDF が実行されていません。

私のデータフレームは次のように作成されます:

このデータフレームに 100 行が入力されていることを確認しました。次のセルでは、単純な udf を実行しようとしています。

これは出力を生成しません。データフレーム内の各エントリが印刷されると予想していました。ただし、単に試しiterateMeals('test')てみると、「test」が起動して出力されます。私も使ってみましたpyspark.sql.functions

これを試すと、次のエラーが表示されます。

誰かが私がどこで間違ったのか説明できますか? .foreachこのアプリケーションのデータフレーム内で udfs を実行する必要があります。

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

apache-spark - PySpark - ALS 出力の RDD から DataFrame へ

Spark のレコメンデーション システムを使用しています。

モデルをトレーニングした後、推奨モデルを取得するために以下のコードを実行しました.recommendProductsForUsers(2)

この場合RecRDD以下を参照してください。

この情報を次のようなデータフレームに入れるにはどうすればよいですか

お時間をありがとう

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

apache-spark - pyspark.sql.functions.from_utc_timestamp() の tz パラメータ

こんにちは、私は現在、Spark を介して時系列データに取り組んでおり、タイムゾーンを扱っています。

SparkSQL の組み込み関数の一部は、特定のタイム ゾーン パラメーターを使用しました。たとえば、次のようになります。

私の場合、タイムゾーン情報は「+01:00」の形式で保存されているため、タイムゾーンの短縮形を使用するのは便利ではないかもしれません。

だから私の質問は次のとおりです:オフセットが考慮されるように、「+01:00」の形式のオフセット文字列をsparkデータフレームに組み込むにはどうすればよいですか?

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

apache-spark - Spark Standalone アプリケーションが最後の時点でハングする

私は比較的 Spark に慣れていないので、python と spark SQL を使用して簡単なスクリプトを作成しました。私の問題は、実行の開始段階では完全に問題ありませんが、徐々に速度が低下し、最後の段階の終わりにアプリケーション全体がハングすることです。アプリケーションがハングするコード スニペットを次に示します。

私は端末で次のものを持っています -

その後、アプリケーション全体がハングします。次の構成の spark-env.sh ファイルがあります。

3 ノード クラスタを使用しています。2 つのコアと 4 GB のメモリを備えた1 つのマスターと、 4 つのコアと 7 GB のメモリを備えた他の 2 つのワーカー

これまでに次のことを試しました-

  • executor コアの数を増やす
  • さまざまな量のリソースを持つエグゼキューターの増加/減少。

私は持っている -

  1. スパーク -1.6.0
  2. Java 7
  3. スカラ 2.10.4
  4. ビルド済み Hadoop 2.3
  5. 構築済みハイブ

アプリケーションを 2 時間実行すると、エラーが発生します。

ターミナルウィンドウ

構成を調整する必要があると思いますが、どの構成かわかりません。誰かが何が起こっているのかを知っていて、役立つ情報を提案してくれたらありがたいです。

前もって感謝します。

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

postgresql - pyspark での jdbc jar の操作

pyspark の postgres sql データベースから読み取る必要があります。herehere 、および他の多くの場所などでこれが以前に尋ねられたことは知っていますが、そこでの解決策は、ローカルの実行中のディレクトリで jar を使用するか、すべてのワーカーに手動でコピーします。

postgresql-9.4.1208 jar をダウンロードして、/tmp/jars に配置しました。次に、 --jars および --driver-class-path スイッチを使用して pyspark を呼び出しました。

私がやったpysparkの中で:

ただし、 --jars と --driver-class-path を使用すると、作成した jar では問題なく機能しましたが、jdbc では失敗し、ワーカーから例外が発生しました。

jar を手動ですべてのワーカーにコピーし、--conf spark.executor.extraClassPath と --conf spark.driver.extraClassPath を追加すると、(同じ jar で) 機能します。ドキュメントでは、非推奨のSPARK_CLASSPATH を使用すると、実際にこれら 2 つのスイッチが追加されることが示唆されています (ただし、必要な --jars オプションを使用して OTHER jar を追加できないという副作用があります)。

私の質問は、jdbc ドライバーが機能しない特別な点と、すべてのワーカーに手動でコピーすることなく追加するにはどうすればよいかということです。

アップデート:

さらに調べたところ、ドキュメントで次のことがわかりました。ドライバーは、接続を開こうとしたときに原始クラス ローダーに表示されません。これを行う便利な方法の 1 つは、すべてのワーカー ノードの compute_classpath.sh を変更して、ドライバー JAR を含めることです。".

問題は、computer_classpath.sh が見つからないように見えることと、原始クラス ローダーの意味を理解できないことです。

これは、基本的にこれをローカルで行う必要があることを説明しています。また、基本的に修正があると言っているこれも見つけましが、バージョン 1.6.1 ではまだ利用できません。

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

python - Spark-submit: 未定義の関数 parse_url

関数 - parse_urlは、spark-sql throw sql-client (thrift サーバー経由)、IPython、pyspark-shell を使用する場合は常に正常に動作しますが、spark-submitモードをスローすると動作しません。

エラーは次のとおりです。

したがって、ここでは回避策を使用しています。

この問題について何か助けてください。

0 投票する
0 に答える
52 参照

apache-spark - pyspark 1.3.1 でデータフレームを rdd に変換せずに行番号を生成する方法はありますか?

私は pyspark 1.3.1 を使用しています。データフレームの各行に一意の ID/番号を生成する必要があります。

Pyspark Version:1.3.1ではwindow関数が使えないため、rownumber関数が使えません。

行番号関数を使用せず、データフレームをRDDに変換せずに行番号を取り込むにはどうすればよいですか?

0 投票する
0 に答える
405 参照

google-bigquery - ファイル名にパーティション値を使用して、パーティション化されたデータをファイルに書き込むにはどうすればよいですか?

RDBMS から月ごとに大量のデータをアンロードし、その月に基づいて Google Cloud Storage (GCS) にロードしました。次に、データセット全体を dataproc クラスタの pyspark データ フレームに読み込み、月ではなく日を基に GCS に再書き込みしたいと考えています。各ファイルに特定の日付のみが含まれるクラウド ストレージへの書き込みは成功しましたが、効率的に行うことができませんでした。その日付に基づいてファイルまたはディレクトリに名前を付けます。以下のコードは、私がやりたいことを実行しますが、非常に非効率的です。また、寄木細工のファイルを使用することで理論的にはこれを回避できることも知っていますが、私の要件は CSV として書き込むことです。最終的には、このデータを 1 日あたりのテーブルで bigquery にロードしたいと考えています。より簡単な解決策があれば (そして、1 日あたりの各テーブルをファイルにエクスポートするだけで済みます)。

読み込んだデータの日付が ['2014-01-01', '2014-01-02', '2014-01-03'] だとすると、結果のファイル/ディレクトリは次のようになります。

gs://buck_1/AUDIT/2014-01-01/part-1
gs://buck_1/AUDIT/2014-01-01/part-2
gs://buck_1/AUDIT/2014-01-01/part- 3
gs://buck_1/AUDIT/2014-01-01/part-4

gs://buck_1/AUDIT/2014-01-02/part-1
gs://buck_1/AUDIT/2014-01-02/part-2
gs://buck_1/AUDIT/2014-01-02/part- 3
gs://buck_1/AUDIT/2014-01-02/part-4

gs://buck_1/AUDIT/2014-01-03/part-1
gs://buck_1/AUDIT/2014-01-03/part-2
gs://buck_1/AUDIT/2014-01-03/part- 3
gs://buck_1/AUDIT/2014-01-03/part-4