spark.sql(配置单元)架构与cassandra架构不匹配

jvlzgdj9  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(379)

因此,我尝试在spark.sql中执行一个简单的select语句,但是它出现了一个错误,即使该列显然存在于cassandra表中:

// Spark ------------------------------------    
spark.sql("SELECT value2 FROM myschema.mytable").show()

>> org.apache.spark.sql.AnalysisException: cannot resolve '`value2`' 
   given input columns: [key, value1]

// Cassandra --------------------------------
DESCRIBE myschema.mytable;

>> CREATE TABLE mytable.myschema (
>>    key int,
>>    value1 text,
>>    value2 text,
>>    PRIMARY KEY (key)
>> ) WITH ...;

我假设配置单元没有正确同步,但是运行表刷新命令不起作用。 spark.sql("REFRESH TABLE myschema.mytable") 看到了吗https://spark.apache.org/docs/2.1.2/sql-programming-guide.html#metadata-令人耳目一新
唯一能让它正常刷新的方法是:
将所有数据移出表
放下table
删除配置单元元数据行 DELETE FROM "HiveMetaStore".sparkmetastore WHERE key='_2_myschema' AND entity='org.apache.hadoop.hive.metastore.api.Table::mytable'; 重新创建表
复制所有数据
当然有更好的办法吗?

9rygscc1

9rygscc11#

在我的spark环境中,这仍然是一个问题,但是我发现仅仅在 "HiveMetaStore".sparkmetastore 大约5分钟后,table似乎恢复正常。
即使不重新启动spark会话,这也可以工作。

相关问题