問題タブ [apache-spark-2.0]
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.
amazon-s3 - partitionBy または InsertInto Hive と並行してデータフレーム/データセットの各パーティションを保存する方法
私は現在、spark 2.0.1 を使用しており、insertInto() を使用して「パーティション化されたテーブル ハイブ」にデータセットを保存しようとしています。しかし、この 2 つの方法では、データセットの各パーティションは順番に 1 つずつ保存されます。非常に遅いです。insertInto() または partitionBy() を一度に 1 つずつ使用する必要があることは既にわかっています。spark.2.0.1 Dataframe には Resilient Data Set があると思います。私の現在のコード:
または
だから私はこのような df.foreachPartition でいくつかのものを試してみてください:
以下に抽出ログがあります。最初の例では、ハイブの「InserInto(tablehivealreadypartitionned)」です。すべての「パーティション」Spark が 1 つずつ書き込まれていることがわかります。2 番目の例では、S3 に直接書き込むのは「partitionBy().save()」です。また、すべての「パーティション」スパークが 1 つずつ書き込まれていることもわかります。私たちが扱うデータフレームには「パーティション」が 1 つしかなく、そのサイズは圧縮されていない (メモリ内で) 約 200MB です。ジョブは、オプション local[4] を使用してデータを保存するのに 120 秒 170 秒かかります。
残念ながら、データセットの各スパーク パーティションを並行して書き込み/保存する方法がまだ見つかりません。
誰かがすでにこれを行っていますか?
進め方を教えていただけますか?
向きが悪いのでしょうか?ご協力いただきありがとうございます
csv - 埋め込まれたカンマを含む引用符で囲まれたフィールドを持つ csv ファイルの読み取り
次のように Pyspark で csv ファイルを読み込んでいます。
ただし、データ ファイルには、カンマが埋め込まれた引用符で囲まれたフィールドがあり、カンマとして扱われるべきではありません。Pyspark でこれを処理するにはどうすればよいですか? パンダがこれを処理できることは知っていますが、Spark はできますか? 私が使用しているバージョンは Spark 2.0.0 です。
Pandas では機能するが、Spark では失敗する例を次に示します。
ファイルの内容:
scala - Javaのメモリ不足エラーでどのタイプのSparkメモリを増やす必要がありますか?
だから、私は以下に示すようなパターンを持っています。
そのため、内部someFunction
では、ある場所で大きな文字列が作成されますが、これはまだそれほど大きくはありません (< 1 GB) が、java.lang.OutOfMemoryError: Java heap space
その文字列の作成中にエラーが発生することがあります。これは、エグゼキュータのメモリが非常に大きい (8 GB) 場合でも発生します。
この記事によると、UserメモリとSparkメモリがあります。さて、私の場合、UserメモリとSparkメモリのどちらを増やせばいいのでしょうか?
PS: Spark バージョン 2.0 を使用しています
java - Spark 2.0.1 java.lang.NegativeArraySizeException
Spark 2.0.1 で遊んでいます。新しいデータセット API は非常にクリーンですが、非常に単純な操作に問題があります。
誰かが助けてくれることを願っています。
これらの指示
を生産する
JVM (1.8) によって検出された致命的なエラー。
データセット API を使用したデータの操作 (つまり、選択、infos オブジェクトのカウント) は正常に機能します。
Dataset と RDD を切り替えるにはどうすればよいですか?
scala - Spark 2.0 データセットとデータフレーム
spark 2.0.1 から始めて、いくつか質問がありました。多くのドキュメントを読みましたが、これまでのところ十分な答えが見つかりませんでした:
- 違いは何ですか
df.select("foo")
df.select($"foo")
- 私はそれを正しく理解していますか
myDataSet.map(foo.someVal)
タイプセーフであり、変換されませんRDD
が、DataSet 表現にとどまります / 追加のオーバーヘッドはありません (2.0.0 のパフォーマンスに関して)
- select などの他のすべてのコマンドは、単なるシンタックス シュガーです。タイプセーフではなく、代わりにマップを使用できます。
df.select("foo")
map ステートメントなしでタイプセーフにする にはどうすればよいですか?- マップの代わりに UDF / UADF を使用する必要があるのはなぜですか (マップがデータセット表現にとどまると仮定して)?
pyspark - PySpark の 2 つの異なる pyspark.sql.dataframes の 2 つの列から pyspark.sql.dataframe を作成する
行数が等しい pyspark の次の 2 つのデータフレームを想定します:
df1:
|_ Column1a
|_ Column1b
df2:
|_ 列 2a
|_ 列 2b
Column1a と Column 2a のみを持つ新しい DataFrame "df" を作成したいと考えています。それに対する最善の解決策は何ですか?
amazon-web-services - S3 への書き込みが完了した後、EMR の Spark ステップが「実行中」としてハングする
ステップとして EMR 5.1.0 で PySpark 2 ジョブを実行します。S3 にファイルが書き込まれ、ジョブが完了したことを示す Spark UI を使用してスクリプトが完了した後でも_SUCCESS
、EMR はまだステップを「実行中」と表示します。Spark が自分自身をクリーンアップしようとしているかどうかを確認するために 1 時間以上待ちましたが、ステップが「完了」として表示されません。ログに最後に書かれたことは次のとおりです。
Spark 1.6 ではこの問題はありませんでした。私はたくさんの異なるジャーを試しましたが、役に立ちませんでしたhadoop-aws
。aws-java-sdk
デフォルトの Spark 2.0 構成を使用しているため、メタデータのようなものは他に書き込まれていないと思います。また、データのサイズもこの問題に影響していないようです。
amazon-web-services - PySpark: AWS s3n は機能していますが、s3a は機能していません
ローカル マシンで Spark を使用して Amazon s3 のデータにアクセスしようとしています。s3n ではデータにアクセスできますが、s3a ではアクセスできません。以下は構成です。
Spark :- Hadoop 2.7 でビルド済みの 2.0.1
取得エラー:-
このエラーを修正するにはどうすればよいですか?