私は大量のデータを持っており、効率的に(つまり、比較的小さなSparkクラスタを使用して)COUNTおよびDISTINCT操作の1つを実行することを検討しています。その後、csvsでsparkでCOUNT DISTINCTを効率的に実行できますか?
df = spark.read.format("CSV").load("s3://somebucket/loadsofcsvdata/*").toDF()
df.registerView("someview")
し、クエリを実行しようとすると::
私が明白と思われるものを行う場合、すなわちデータフレームにデータをロード
domains = sqlContext.sql("""SELECT domain, COUNT(id) FROM someview GROUP BY domain""")
domains.take(1000).show()
私クラスタだけでクラッシュし、やけどを - 投げ操作の中断/クラッシュ/完了していないことを確認します。
私は途中で、エグゼクティブの記憶の1つを吹き飛ばしているようなものがあると思いますか?
ソースデータが大規模でターゲットデータがない場合(上記のクエリのドメインリストは比較的短く、メモリに簡単に収まるはずです)、このような操作を実行する理想的な方法は何ですか?この質問でご利用いただけます