Ab Oktober 2017 ist es möglich, Sparklyr Spark Data Frames in SQL Server zu schreiben?Laden von Tabellen in SQL Server von SparklyR
habe ich diesen Fehler:
> DBI::dbWriteTable(con, "DZ_test", for_test)
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘dbWriteTable’ for signature
‘"Microsoft SQL Server", "character", "tbl_spark"’
ich zur Zeit läuft:
- dplyr 0.7.4
- sparklyr 0.6.3
- Spark-2.0.1 für Hadoop gebaut 2.7 .3
Es gibt etwas Ähnliches für C Assandra in der wunderbaren crassy
Paket, aber nicht sicher, ob es einen Connector oder eine Methode für SQL Server gibt. Vielen Dank!
Gelöst !!!
Ich habe den JDBC-Treiber für SQL Server verwendet. Ich hatte jdk 1.8, so dass bedeutete, dass ich den Treiber für Java 8 auf allen Knoten verwendet:
spark.jars.packages com.microsoft.sqlserver:mssql-jdbc:6.2.2.jre8
Ich habe dies in $SPARK_HOME/conf/spark-defaults.conf
.
Ich melde mich normalerweise mit der Kerberos-Authentifizierung am SQL-Server an, aber da dies nicht auf allen Knoten meines Testclusters eingerichtet war, habe ich eine SQL-Anmeldung für die gewünschte Datenbank erstellt (Administrator erforderlich) und über diesen Benutzernamen verbunden. bestehen.
spark_write_jdbc(my_sdf, "my_sdf",
options = list(
url=paste0("jdbc:sqlserver://cwjensql10.cwjwin.local;",
"databaseName=HER_NILM;",
"user=HER;",
"password=Test1;"),
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver")
)
Wenn Sie Kerberos-Authentifizierung verwenden (und laufen auf Linux) als solche aussehen:
spark_write_jdbc(my_sdf, "my_sdf",
options = list(
url=paste0("jdbc:sqlserver://cwjensql10.cwjwin.local;",
"databaseName=HER_NILM;",
"integratedSecurity=true;",
"authenticationScheme=JavaKerberos;"),
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver")
)
Für Windows, beinhalten nicht nur die authenticationScheme
Option.
Vielen Dank an @ user6910411 !!!!