dataframe - 如何在 python 中使用雪花连接创建 Spark 数据框?
问题描述
我是 Spark 和 Python 的新手,我有一个存储在 python 变量中的 sql,我们使用 SnowFlake 数据库。如何使用带有雪花连接的 SQL 创建火花数据?
import sf_connectivity (we have a code for establishing connection with Snowflake database)
emp = 'Select * From Employee'
snowflake_connection = sf_connectivity.collector() (It is a method to establish snowflake conenction)
requirement 1: Create Spark Dataframe (sf_df) using 'emp' and 'snowflake_connection '
requirement 2: sf_df.createOrReplaceTempView(Temp_Employee)
它需要什么包或库?我怎样才能使这项工作?
解决方案
帮助我解决这个问题的文档在这里:https ://docs.databricks.com/data/data-sources/snowflake.html
我花了一段时间才弄清楚如何让它工作!在问了很多问题之后,我让我公司的 IT 部门配置了一个带有私钥/公钥身份验证的雪花用户帐户,他们将该 ID 配置为可在我们的公司 Databricks 帐户中访问。
在他们设置好之后,以下代码是一个示例,如何将 sql 命令作为变量传递给 Spark,并让 Spark 将其转换为数据帧。
optionsSource = dict(sfUrl="mycompany.east-us-2.azure.snowflakecomputing.com", # Snowflake Account Name
sfUser="my_service_acct",
pem_private_key=dbutils.secrets.get("my_scope", "my_secret"),
sfDatabase="mydatabase", # Snowflake Database
sfSchema="myschema", # Snowflake Schema
sfWarehouse="mywarehouse",
sfRole="myrole"
)
sqlcmd = '''
select current_date;
'''
df = spark.read.format("snowflake").options(**optionsSource).option("query", sqlcmd).load()
display(df)
推荐阅读
- excel - 使用VBA识别一定范围内的第一个空列
- drawing - SwiftUI:带有内部笔划的楔形
- azure - Azure IOTEdge-网关身份验证错误
- c# - 注册 DbContext 服务
- apache - 在 .htaccess 中设置 RewriteRule 后,网站显示一个空白页面
- mysql - 为什么这个 SUM 是所有分数,而不仅仅是最好的 5 分?
- spring-boot - Spring Boot MVC - 我们是否需要将 @Valid 与 BindingResult 一起使用?
- angular - 如何捕捉角度(离子)中的http错误?
- flutter - Flutter中适合POS系统的本地数据库有哪些?
- javascript - 是否可以使用扩展运算符更新对象,而不是创建新对象?