使用Database ricks笔记本,我能够从Database ricks连接到“雪花”,并使用“scala”将内容写入Snowflake中的表,但使用“python”无法正常工作。
我在数据砖中添加了这两个库,这有助于在数据砖和雪花之间建立联系:雪花-jdbc-3.6.8
和火花-snowflake_2.11-2.4.4-spark_2.2
。
我的目标是使用Databricks(用于机器学习- Spark)并在Databricks和雪花之间来回移动数据。
下面是我尝试将数据帧的内容写入雪花的代码:
df1 = spark.read.format('csv').option("header", "true")\
.option("inferSchema", "true")\
.load("dbfs:/databricks-datasets/airlines/part-00000")
display(df1)
我可以看到数据已加载到数据帧中。
user = dbutils.secrets.get(scope="jdbc", key="snowflake_username")
password = dbutils.secrets.get(scope="jdbc", key="snowflake_password")
options = dict(sfUrl="https://***snowflake_username***.snowflakecomputing.com",
sfUser=user,
sfPassword=password,
sfDatabase="my_database",
sfSchema="PUBLIC",
sfWarehouse="my_warehouse")
SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"
到目前为止没有错误
df1.write.format(SNOWFLAKE_SOURCE_NAME) \
.options(**options) \
.option("dbtable", "datafromspark") \
.save()
这导致:
**Error :
java.sql.SQLException: No suitable driver found for jdbc:snowflake://https://*snowflake_username*.snowflakecomputing.com**
这实际上工作正常(考虑到允许用户写入模式并稍后从中读取)
import dbutils
# Use secrets DBUtil to get Snowflake credentials.
user = dbutils.secrets.get("snowflake", "xx")
password = dbutils.secrets.get("snowflake", "xy")
# snowflake connection options
options = {
"sfUrl": "XXXXXXX.snowflakecomputing.com",
"sfUser": user,
"sfPassword": password,
"sfDatabase": "DBX_TEST",
"sfSchema": "DBX_SCHEMA"
}
# write the dataset to Snowflake
# sparkDF = spark.createDataFrame(...)
sparkDF.write.format("snowflake").options(**options).option("dbtable", "name_table").save()
# Connect to Snowflake and build data frame
df = spark.read.format("net.snowflake.spark.snowflake") \
.options(**options) \
.option("query", "select * from name_table") \
.load()
我发现错误:
在第3步中,无需提及"https://"
即
sfUrl="https://snowflake_username.snowflakecomputing.com" # giving an error
sfUrl="snowflake_username.snowflakecomputing.com" #works fine
问题内容: 我可以从DOS提示符下成功连接到MySQL,但是当我尝试从cygwin连接时,它会挂起。 怎么了? 问题答案: 假设您具有MySQL的本机Windows版本,(命令提示符)Windows和Windows 之间没有终端仿真不兼容。提示没有出现。 要确认这一点,请键入命令并返回-它可能会起作用,但是命令的提示和回显(您键入的内容)会丢失。 系统属性或in中可能都存在一种解决方法,但是我从来
我正在尝试通过JAVA代码在SAP HANA上使用火花SQL执行查询。在对数据帧对象调用任何操作时,当调用 时,我在代码段下方得到 java.io.NotSerializableException.In,不会引发可序列化异常。 错误堆栈跟踪: 线程“main”org.apache.spark中出现异常。SparkException:位于org.apache.spark.util.ClosureCl
我正在尝试在Linux-Debian 8.11@Virtualbox上设置MSSQL数据库,但无法通过MSSQL MSSQL Server Management Studio连接到它 服务器是可ping的。 VirtualBox中的网络设置: 纯主机网络VirtualBox纯主机以太网适配器 有什么想法吗? 错误日志@服务器 https://pastebin.com/7WGEVg1a
我正在做一个NodeJS项目,似乎使用了非常常见的AWS设置。我的ApiGateway接收调用,触发lambda A,然后这个lambda根据从ApiGate传递的参数触发其他lambda,比如B或C。 Lambda A需要访问MongoDB,为了避免自己运行MongoDB时遇到麻烦,我决定使用mLab。ATM Lambda A正在使用NodeJS驱动程序访问MongoDB。现在,为了不在每次执行
我正在尝试使用同一版本的SolrJ从Java代码连接到运行5.3.1的Solr服务器。我在Eclipse中不断收到一条消息,HttpSolrServer已被弃用,但在任何地方都找不到它已被取代的内容。有人知道我如何使用SolrJ和当前的东西从Java连接到Solr吗?SolrJ文档似乎都表明HttpSolrServer是受支持的方式,但Eclipse对此并不满意。
我遇到了从一个火花运行的AWS EMR集群连接到另一个立即运行的AWS EMR集群的问题。 用python编写的代码是: 通过aws