我正在尝试使用 Azure Databricks 来:
1- 使用 python 3 将行插入 Azure SQL 数据库的表中。我看不到有关插入行的文档。(我已使用此链接连接到数据库Doc并且它正在工作)。
2- 将 Csv 文件保存在我的数据湖中
3-如果可能的话,从数据框创建表
感谢您的帮助,并对我的新手问题感到抱歉
我正在尝试使用 Azure Databricks 来:
1- 使用 python 3 将行插入 Azure SQL 数据库的表中。我看不到有关插入行的文档。(我已使用此链接连接到数据库Doc并且它正在工作)。
2- 将 Csv 文件保存在我的数据湖中
3-如果可能的话,从数据框创建表
感谢您的帮助,并对我的新手问题感到抱歉
**1- 使用 python 3 将行插入 Azure SQL 数据库的表中。**
Azure Databricks 已安装 JDBC 驱动程序。我们可以使用 JDBC 驱动程序通过 Dataframe 将数据写入 SQL Server。更多详情,请参阅此处。
例如
jdbcHostname = "<hostname>"
jdbcDatabase = ""
jdbcPort = 1433
jdbcUrl = "jdbc:sqlserver://{0}:{1};database={2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
"user" : jdbcUsername,
"password" : jdbcPassword,
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}
#write
df=spark.createDataFrame([(1, "test1"),(2,"test2")],["id", "name"])
df.write.jdbc(url=jdbcUrl,table="users",mode="overwrite",properties=connectionProperties)
#check
df1 = spark.read.jdbc(url=jdbcUrl, table='users', properties=connectionProperties)
display(df1)
2- 从数据框创建表
如果要从 datafarme 创建 DataBricks 表,可以使用方法registerTempTable
或saveAsTable
.
registerTempTable创建一个内存表,该表的范围仅限于创建它的集群。数据使用 Hive 高度优化的内存列格式存储。
saveAsTable使用 Parquet 格式创建存储在 S3 中的永久物理表。该表可供所有集群访问,包括仪表板集群。包含文件位置的表元数据存储在 Hive 元存储中。