启动配置
--conf spark.sql.catalog.lance=com.lancedb.lance.spark.LanceNamespaceSparkCatalog \
--conf spark.sql.catalog.lance.impl=dir \
--conf spark.sql.catalog.lance.root=${object_storage_path}lancedb/ \
// spark.sql.catalog.lance.root是本地路径或者你对象存储的文件夹路径
数据如果在s3要增加配置:
--conf spark.sql.catalog.lance.storage.region=us-west-9 \
代码写入
错误
spark_df
.write
.format("lance") //lance是表格式
.mode("overwrite")
.saveAsTable(f'lance.default.{table1}') //lance是catalog 使用--conf中的完整路径
上面写入是旧版spark writer api. lanceDB貌似只适配了新版,要使用新版API写入
老版本估计传入的表option无法识别导致. 他生成的是 float[] 而不是 正确的float[16]
正确
item_wide
.writeTo(f'lance.default.tb1')
.tableProperty("some_embedding.arrow.fixed-size-list.size", "16") # some_embedding 是向量列的列名
.createOrReplace() # 这里多种写法 参考spark DataFrameWriterV2语法
写入案例 官方文档
https://lancedb.com/blog/introducing-lance-namespace-spark-integration/?utm_source=chatgpt.com
他这个要先建schema,我的直接自动生成schema
1120

被折叠的 条评论
为什么被折叠?



