小编Mou*_*ika的帖子

使用 spark sql 在 sqlserver 上执行查询

我正在尝试使用 spark sql 获取 sql server 模式中所有表的行数和列数。

当我使用 sqoop 执行以下查询时,它给了我正确的结果。

sqoop eval --connect "jdbc:sqlserver://<hostname>;database=<dbname>" \
--username=<username> --password=<pwd> \
--query """SELECT 
ta.name TableName ,
pa.rows RowCnt, 
COUNT(ins.COLUMN_NAME) ColCnt FROM <db>.sys.tables ta INNER JOIN 
<db>.sys.partitions pa ON pa.OBJECT_ID = ta.OBJECT_ID INNER JOIN 
<db>.sys.schemas sc ON ta.schema_id = sc.schema_id join 
<db>.INFORMATION_SCHEMA.COLUMNS ins on ins.TABLE_SCHEMA =sc.name and ins.TABLE_NAME=ta.name 
WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0) and sc.name ='<schema>' GROUP BY sc.name, ta.name, pa.rows order by 
TableName"""
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从 spark sql 执行相同的查询时,我收到一个错误“ com.microsoft.sqlserver.jdbc.SQLServerException:关键字'WHERE'附近的语法不正确”请帮助我,如果有人知道这个错误。

下面是我执行 …

sql-server rowcount column-count apache-spark apache-spark-sql

3
推荐指数
1
解决办法
3485
查看次数