
94
5 章 データのロードとセーブ
}
val data = new JdbcRDD(sc,
createConnection, "SELECT * FROM panda WHERE ? <= id AND id <= ?",
lowerBound = 1, upperBound = 3, numPartitions = 2, mapRow = extractValues)
println(data.collect().toList)
JdbcRDD
は、いくつかのパラメータを取ります。
•
最初に、データベースへの接続を確立するための関数を渡します。これによって、接続に
必要な設定がなされた後、データをロードするための接続が各ノードから生成されます。
•
次に、一定範囲のデータを読み取るクエリを、そのクエリに対するパラメータの
lower
Bound
と
upperBound
の値と共に渡します。
Spark
は、これらのパラメータを使ってさま
ざまなマシンから異なる範囲のデータへのクエリを実行できるので、単一のノードがすべ
てのデータをロードしようとしてボトルネックになることが避けられます
†
。
•
最後のパラメータは、出力の各行を
java.sql.ResultSet
(
http://docs.oracle.com/java
se/7/docs/api/java/sql/ResultSet.html
)から、データを操作するのに便利な形式に変
換する関数です。
5-37
では、
(Int, String)
のペアを取得しています。このパラ ...