我有一个 dotnet 项目,我正在生成一堆 parquet 文件。我想将这些镶木地板文件上传到 Databricks。我宁愿避免将 python 引入到这个项目中。有没有不需要Python的方法来做到这一点?
Databricks 文档 似乎仅涵盖 UI/手动情况。
我希望有某种我可以调用的 HTTP API 或类似的东西。 ODBC 有用吗?
取决于文件有多大。是否正在进行一次,桌子后面的存储是什么,它们是什么类型的等等。
正如您提到的 .NET 和 ODBC:这是您可以使用的 Databricks ODBC 驱动程序。
总的来说,您有两个选择:
您必须以某种方式使“本地”镶木地板文件可供 Databricks 计算使用。因此,您必须将其复制到可从 Databricks 计算中读取的某个存储/FS。例如
假设“远程 Databricks 表”是由 S3 存储支持的 Delta 表(比如
s3://bucket/path/to/delta/table1
)。
$ pyspark --packages io.delta:delta-core_2.12:2.4.0,org.apache.hadoop:hadoop-aws:3.3.4 \
--conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \
--conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"
......snip......
io.delta#delta-core_2.12 added as a dependency
org.apache.hadoop#hadoop-aws added as a dependency
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ _/
/__ / .__/\_,_/_/ /_/\_\ version 3.5.0
/_/
Using Python version 3.10.12 (main, Jun 8 2023 17:32:40)
SparkSession available as 'spark'.
>>> df = spark.read.parquet('/tmp/path/to/local/parquet/file1.parquet')
>>> df.write.format('delta').save('s3a://bucket/path/to/delta/table1')
>>>