2016-09-20 5 views
0

Spark 2.0.0では、常にテーブルAを使用して他のテーブルとのジョインを行うデータベースがある場合、テーブルAを保持してこのようにジョインする必要がありますか?または、AとB、AとCなどを結合するクエリを指定するSpark SQLアプローチを使用する必要がありますか?Spark SQLを使用してデータを照会するベストプラクティスは何ですか?

そして、私はテーブルのところ、条件すなわち

SELECT * FROM Z where z_id = '1' 

SELECT * FROM Z where z_id = '2' 

を使用して複数回、私はスパークSQLを使用する必要があり、明示的にそれを照会Z、またはのためのクエリを照会する場合テーブルとRDDテーブル上で動作しますか?

+0

rddまたはdataframeを複数回使用する場合は、persist()を使用するのが常に良いと言います。あなたは尋ねる前に試してみるべきです! – GwydionFR

答えて

0

複数のことができます。フィルターを複数回使用する場合は、以下のようにご使用ください。

**df=sqlContext.sql('''select * from Z ''') 
df.registerTempTable('Z_temp') 
sqlContext.cacheTable('Z_temp')** 

任意のパラメータを使用してパージし、キャッシュはデータをメモリに保存/保存します。

表から複数のフィルタを使用する場合は、spark.sql.parquet.filter pushdown = Trueを使用してください。

関連する問題