web-dev-qa-db-ja.com

Spark-sqlserver接続

spark with sql-server?もしそうなら、どのように?私はsparkに不慣れなので、サーバーをsparkに接続して、 .txtまたは.csvファイルをアップロードする代わりにsql-server。助けてください、ありがとう。

5
Tia

ここにいくつかのコードスニペットがあります。 DataFrameは、テーブルt2を作成し、データを挿入するために使用されます。 SqlContextは、t2テーブルからDataFrameにデータをロードするために使用されます。 spark.driver.extraClassPathとspark.executor.extraClassPathをspark-default.confファイルに追加しました。

//Spark 1.4.1

//Insert data from DataFrame

case class Conf(mykey: String, myvalue: String)

val data = sc.parallelize( Seq(Conf("1", "Delaware"), Conf("2", "Virginia"), Conf("3", "Maryland"), Conf("4", "South Carolina") ))

val df = data.toDF()

val url = "jdbc:sqlserver://wcarroll3:1433;database=mydb;user=ReportUser;password=ReportUser"

val table = "t2"

df.insertIntoJDBC(url, table, true)

//Load from database using SqlContext

val url = "jdbc:sqlserver://wcarroll3:1433;database=mydb;user=ReportUser;password=ReportUser"

val driver = "com.Microsoft.sqlserver.jdbc.SQLServerDriver";

val tbl = { sqlContext.load("jdbc", Map( "url" -> url, "driver" -> driver, "dbtable" -> "t2", "partitionColumn" -> "mykey", "lowerBound" -> "0", "upperBound" -> "100", "numPartitions" -> "1" ))}

tbl.show()

考慮すべきいくつかの問題は次のとおりです。

ポート1433のファイアウォールポートが開いていることを確認します。MicrosoftAzureSQLServerDBを使用している場合、テーブルには主キーが必要です。一部のメソッドはテーブルを作成しますが、Sparkのコードは主キーを作成していないため、テーブルの作成は失敗します。

注意すべきその他の詳細: https://docs.databricks.com/spark/latest/data-sources/sql-databases.html

ソース: https://blogs.msdn.Microsoft.com/bigdatasupport/2015/10/22/how-to-allow-spark-to-access-Microsoft-sql-server/

3
Anush
// Spark 2.x
import org.Apache.spark.SparkContext

// Create dataframe on top of SQLServer database table
val sqlContext = new org.Apache.spark.sql.SQLContext(sc)

val jdbcDF = sqlContext.read.format("jdbc").option("driver" , "com.Microsoft.sqlserver.jdbc.SQLServerDriver") \
           .option("url", "jdbc:sqlserver://XXXXX.com:port;databaseName=xxx") \
           .option("dbtable", "(SELECT * FROM xxxx) tmp") \
           .option("user", "xxx") \
           .option("password", "xxx") \
           .load()

// show sample records from data frame

jdbcDF.show(5)
6
Ajay_SK

SQL Serverビッグデータクラスター内では、Sparkも含まれています。SQLServer2019バージョン以降、ビッグデータクラスターにより、HDFSファイルシステムを介したデータの大規模なほぼリアルタイムの処理が可能になります。他のデータソース。また、環境の管理、監視、セキュリティのために1つの環境に統合されているApache Sparkフレームワークを活用します。

Weissman、B。&Van de Laar E.(2019) SQL Serverビッグデータクラスター:リリース候補1に基づく初期の初版。オランダ:Apress。

0
JORGE BECERRIL