执行pd.to_sql时如何设置会话属性?{错误:"必填字段'numDVs'未设置! }



将数据帧数据插入presto数据库时出现问题。

错误消息是

{'message': "Required field 'numDVs' is unset! Struct:LongColumnStatsData(lowValue:0, highValue:2, numNulls:0, numDVs:0),
'errorCode': 16777216, 
'errorName': 'HIVE_METASTORE_ERROR', 
'errorType': 'EXTERNAL' ..."

我认为

SET SESSION COLLECT_COLUMN_STATISTICS_ON_WRITE = FALSE

应在插入数据之前执行。但是我找不到办法。在执行pd.to_sql之前,有什么方法可以设置session属性吗?

from pyhive import presto
result.to_sql(table_name, engine, if_exists='append', index=False)

表格格式

CREATE TABLE tablename (
similarity DOUBLE,
cluster INTEGER,
member_cnt INTEGER,
member_list VARCHAR,
mean_similarity DOUBLE,
ym VARCHAR(6)
)
WITH (format = 'ORC', PARTITIONED_BY = ARRAY['ym'])

我们可以通过session_props设置会话属性,如下所示。

from pyhive import presto
cursor = presto.connect('localhost', session_props={'hive.collect_column_statistics_on_write': 'false'}).cursor()

相关内容

  • 没有找到相关文章

最新更新