我们可以在没有spark.sql的情况下将pandas数据帧中的数据加载到databricks表中吗



我有一个要求,将csv/panda数据帧中的数据写入databricks表。我的python代码可能没有在databricks集群上运行。我可能在一个孤立的独立节点上运行。我使用databricks python连接器从databrickss表中选择数据。选择正在工作。但我无法将csv或pandas数据帧中的数据加载到databricks中。

我可以使用databricks-python连接器将csv/pandas数据帧中的批量数据加载到databricks表中吗?

以下是获取databricks连接并使用databricks-python连接器在独立节点上执行选择的代码片段。

from databricks import sql
conn = sql.connect(server_hostname=self.server_name,
http_path=self.http_path,
access_token=self.access_token
)
try:
with conn.cursor() as cursor:
cursor.execute(qry)
return cursor.fetchall_arrow().to_pandas()
except Exception as e:
print("Exception Occurred:" + str(e))

注意:我的csv文件位于Azure ADLS Gen2存储中。我阅读这个文件是为了创建pandas数据帧。我所需要的就是将数据从panda加载到Databricks delta表,或者读取csv文件并将数据加载到delta表。这可以使用databricks python连接器而不是使用spark来实现吗?

这可以使用databricks-python连接器而不是使用火花来实现吗?

Databricks SQL Connector for Python是一个Python库,允许您使用Python代码在Databrickss集群和DatabricksSQL仓库上运行SQL命令

因此,对于python来说,Databricks SQL连接器没有任何将Pandas数据帧转换为Delta lake的作用域。

问题的第二部分是,如果有其他方法可以在不使用spark.sql的情况下将pandas Dataframe转换为Delta表。

由于Delta lake与Spark绑定,据我所知,没有任何可能的方法可以在不使用Spark的情况下将Panda Dataframe转换为Delta表。

或者,我建议您将该文件读取为spark Dataframe,然后使用以下代码将其转换为Delta格式。

val file_location = "/mnt/tables/data.csv"
val df = spark.read.format("csv")
.option("inferSchema", "true")
.option("header", "true")
.option("sep", ",")
.load(file_location)
df.write.mode("overwrite").format("delta").saveAsTable(table_name)

最新更新