2017-04-28 4 views
0

私はSparkを初めて使用しており、結果セットに4億行に近いSpark SQLを実行しようとしています。私はJupyterノートブックからSpark SQLを実行しています。 Azure HDInsightでSparkを使用しています。限り、私は実行すると4098メガバイト Jupyterノートブックを使用してSpark SQLを使用して4億行を引き出す

- - エグゼキュータの3

  • 数 - 5
  • キュータメモリキュータあたりのコア

    1. 番号:スパーククラスタの構成は次のとおり私に行の最初のカップルを与えるためにクエリ、すべて正常に動作します。しかし、すべての行、つまり4億行を引き出そうとすると、「Executorがリクエストを殺しました」というエラーがスローされます。

      私が知りたいことは、Spark SQLまたはJupyterノートブックからこの量のデータを取り出すことができることです。

      本当にこのボリュームをプルすることができれば、私は間違って何をしていますか?

      現在のところ、正確なエラーメッセージは表示されません。この記事を間もなくエラーメッセージとともに更新します。

      誰でもこれを手伝うことができれば、大きな助けになるでしょう。

      ありがとうございます!

  • +2

    4GBエグゼキュータで5億行を処理したいと思っています。それは野心的です。あなたは実際に1000万を処理するために幸運になります。 –

    答えて

    0

    一般に、400M行を実現するには分散計算の考え方に反します。あなたが達成したいことの詳細を述べることができれば、それをどのようにして並列に達成するのかを提案することができます。 Sparkには、ほとんどのユースケースに対応できる柔軟なAPIがあります。

    これを行うこともできます。 400M行を収集すると、ドライバプロセスでそれらを累積します。 Azure HDInsightでは、ドライバプロセスが糸マスターアプリケーションで実行されます。多くのデータを格納するのに十分なメモリを持つように設定する必要があります。 Jupyterから構成は:

    %% { "driverMemory": "60G"} -f設定だけノートに別個のセルとして追加

    +0

    私たちはSparkが私たちの要求を満たすかどうかを判断しようとしています。ユーザーが、アプリケーションが使用するテーブルから任意の列を引き出し、それをデータグリッドに表示できるようにするソリューションを構築する必要があります。今、ユーザーは、テーブル・ジョインのすべての行がデータ・グリッドに表示されることを期待して、N個の列を表から取り出すことができるようにしたいと考えています。これが400M行を実現しようとしているのは、それが生産時でも見込めるデータ量だからです。 –

    +0

    この場合、ユーザーにスケーラブルなデータ探索ツールを提供する必要がある場合は、データサイズに合わせてsparkドライバを拡張するか、SQLまたはNoSQLデータベース(MS SQL、MySQL 、CosmosDB、HBase)、その上でアドホッククエリを使用して、UIのデータの特定の部分を表示します。 Sparkでは、データソースを使用して外部データベースに結果を並行して簡単に保存できます。 – maxiluk

    関連する問題