Apache spark 在spark 2.0中访问指定数据库限定符的配置单元表
我正在尝试使用spark sql访问指定数据库限定符的配置单元表。我正在使用sparksession,因为它是spark 2.0或更高版本。例如,我正在尝试向现有表添加分区。问题是 sql(“ALTER TABLE$databasename.$tablename ADD PARTITION(…)LOCATION…”) 它不会抛出任何错误,但甚至不会创建任何分区。是不是我不能在spark sql中指定databaseNameApache spark 在spark 2.0中访问指定数据库限定符的配置单元表,apache-spark,hive,apache-spark-sql,Apache Spark,Hive,Apache Spark Sql,我正在尝试使用spark sql访问指定数据库限定符的配置单元表。我正在使用sparksession,因为它是spark 2.0或更高版本。例如,我正在尝试向现有表添加分区。问题是 sql(“ALTER TABLE$databasename.$tablename ADD PARTITION(…)LOCATION…”) 它不会抛出任何错误,但甚至不会创建任何分区。是不是我不能在spark sql中指定databaseName use Database 您可以使用的最新Spark版本支持该命令 s
use Database
您可以使用的最新Spark版本支持该命令
sparksession.sql("use $databasename");
sparksession.sql("ALTER TABLE $tablename ADD PARTITION (...) LOCATION ...");
尝试使用上面的代码,这可以解决您的问题。您可以分享代码和spark日志吗?这是一个非常大的代码。在这里面,我正在实现一个方法。无法共享整个代码,基本上代码正在创建一个查询,看起来像:ALTER TABLE databaseName.tableName ADD PARTITION(partitioncolumns='value')LOCATION“some s3 LOCATION”当它执行此sql时,你能看到spark日志吗?当我不指定数据库名称时,即当它使用默认数据库时,它运行得非常好。是的,sparks日志说,重试两次或三次,然后停止,不会抛出错误。我正在运行EMRUse数据库语句上的spark代码。但是,如果可能的话,我想在查询本身中指定databaseName。因为有不同的方法,如果可以在一个查询中完成,我不想使用两个不同的SQL。