首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突触上的分区表

突触上的分区表
EN

Stack Overflow用户
提问于 2021-03-09 14:56:24
回答 1查看 447关注 0票数 1

我试图在我的SqlDW (突触)上创建一个新的分区表(synapse),它基于星火上的分区表(synapse)

代码语言:javascript
复制
%%spark
val df1 = spark.sql("SELECT * FROM sparkTable")
df1.write.partitionBy("year").sqlanalytics("My_SQL_Pool.dbo.StudentFromSpak", Constants.INTERNAL )

错误:结构流-火花包版本: 2.4.5-1.3.1结构流-火花包版本: 2.4.5-1.3.1结构流-火花包版本: 2.4.5-1.3.1 java.sql.SQLException:由于内部错误导致外部文件访问失败:‘文件/synapse/workspaces/test-partition-workspace/sparkpools/myspark/sparkpoolinstances/c5e00068-022d-478f-b4b8-843900bd656b/livysessions/2021/03/09/1/tempdata/SQLAnalyticsConnectorStaging/application_1615298536360_0001/aDtD9ywSeuk_shiw47zntKz.tbl/year=2000/part-00004-5c3e4b1a-a580-4c7e-8381-00d92b0d32ea.c000.snappy.parquet: HdfsBridge::CreateRecordReader -创建记录阅读器: HadoopExecutionException:列计数不匹配时遇到的意外错误。源文件有5列,外部表定义有6列。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-07-02 01:14:26

sqlanalytics()函数名已更改为synapsesql()。它目前不支持编写分区表,但是您可以自己实现这一点,例如将多个表写回专用SQL池,然后在那里切换使用分区。

语法很简单(按照文献资料):

代码语言:javascript
复制
df.write.synapsesql("<DBName>.<Schema>.<TableName>", <TableType>)

一个例子是:

代码语言:javascript
复制
df.write.synapsesql("yourDb.dbo.yourTablePartition1", Constants.INTERNAL)
df.write.synapsesql("yourDb.dbo.yourTablePartition2", Constants.INTERNAL)

现在,使用ALTER TABLE ... SWITCH PARTITION语法在数据库中进行分区切换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66549280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档