'Can not create a Path from an empty string' 使用 S3 路径的配置单元中的 'CREATE TABLE AS' 错误
'Can not create a Path from an empty string' Error for 'CREATE TABLE AS' in hive using S3 path
我正在尝试使用配置单元在 EMR 中使用来自 spark 运行 的 s3 路径位置在 Glue 目录中创建一个 table。我尝试了以下命令,但出现错误:
pyspark.sql.utils.AnalysisException: u'java.lang.IllegalArgumentException: Can not create a Path from an
empty string;'
sparksession.sql("CREATE TABLE IF NOT EXISTS abc LOCATION 's3://my-bucket/test/' as (SELECT * from my_table)")
sparksession.sql("CREATE TABLE abcSTORED AS PARQUET LOCATION 's3://my-bucket/test/' AS select * from my_table")
sparksession.sql("CREATE TABLE abcas SELECT * from my_table USING PARQUET LOCATION 's3://my-bucket/test/'")
有人可以建议我缺少的参数吗?
在没有指定位置创建数据库时会出现此问题:
CREATE DATABASE db_name;
要解决此问题,请在创建数据库时指定位置:
CREATE DATABASE db_name LOCATION 's3://my-bucket/db_path';
然后,创建一个 table:
USE db_name;
CREATE TABLE IF NOT EXISTS abc LOCATION 's3://my-bucket/db_path/abc' as (SELECT * from my_table)
我正在尝试使用配置单元在 EMR 中使用来自 spark 运行 的 s3 路径位置在 Glue 目录中创建一个 table。我尝试了以下命令,但出现错误:
pyspark.sql.utils.AnalysisException: u'java.lang.IllegalArgumentException: Can not create a Path from an empty string;'
sparksession.sql("CREATE TABLE IF NOT EXISTS abc LOCATION 's3://my-bucket/test/' as (SELECT * from my_table)")
sparksession.sql("CREATE TABLE abcSTORED AS PARQUET LOCATION 's3://my-bucket/test/' AS select * from my_table")
sparksession.sql("CREATE TABLE abcas SELECT * from my_table USING PARQUET LOCATION 's3://my-bucket/test/'")
有人可以建议我缺少的参数吗?
在没有指定位置创建数据库时会出现此问题:
CREATE DATABASE db_name;
要解决此问题,请在创建数据库时指定位置:
CREATE DATABASE db_name LOCATION 's3://my-bucket/db_path';
然后,创建一个 table:
USE db_name;
CREATE TABLE IF NOT EXISTS abc LOCATION 's3://my-bucket/db_path/abc' as (SELECT * from my_table)