をハイブに入社ない私はどのようにこの結合ず起こるpySparkがどのようにTempViewテーブルはテーブル
df1.createOrReplaceTempView("mydata")
df2 = spark.sql("Select md.column1,md.column2,mht.column1 \
from mydata md inner join myHivetable mht on mht.key1 = md.key1 \
where mht.transdate between '2017-08-01' and '2017-08-10' ")
に参加するtempViewとして登録されたデータフレームとハイブテーブルを持っています。 Hiveテーブルのデータボリュームが非常に高い場合は、ハイブテーブルをメモリに読み込み、tempViewテーブルをハイブに書き込むようにします。
詳細については最初の答えの後に、次の追加:
我々はTABLE_Aと呼ばれるスパークにtempViewよう
100行があるとしましょう。
ハイブTABLE_Bで1億行のテーブル。
次の手順でTABLE_AとTABLE_Bを結合する必要があります。
TABLE_Bに日付範囲の条件があります。
テーブルTABLE_Bはサイズが大きいので。ハイブ・ジョインを行うために、テーブル全体をTABLE_B全体をメモリに読み込んだり、テーブル・Aをテンポラリ・スペースに書き込んでハイブ・ジョインを行うか、インテリジェントな方法でパフォーマンスを向上させることができます。
はい、そうですhereを読み取ることができます。 SparkのtempViewとしてTABLE_Aという100行があるとします。私はHive TABLE_Bに10億行のテーブルを持っています。次のステップとして、これらを結合する必要があります。2. TABLE_Bに日付範囲条件があります。テーブルTABLE_Bのサイズが大きいためです。 Hake Joinを行うためにTABLE_B全体をメモリに読み込んだり、Have Joinのテーブル空間にTABLE_Aを書き込んだりすると、パフォーマンスのための結合を行う最良の方法がわかります。 – Nav
Sparkは非常にスマートですのデータ。 10億行がある場合は、十分にプロビジョニングするために(少なくとも8GBのエグゼキュータ・メモリー)、単一のノード内のメモリーにすべてをロードするわけではありません – karthikr