【问题标题】:'Can not create a Path from an empty string' Error for 'CREATE TABLE AS' in hive using S3 path“无法从空字符串创建路径”使用 S3 路径的配置单元中的“CREATE TABLE AS”错误
【发布时间】:2021-02-04 03:01:55
【问题描述】:

我正在尝试在 Glue 目录中使用 hive 在 EMR 中运行的 spark 的 s3 路径位置创建一个表。我尝试了以下命令,但出现错误:

pyspark.sql.utils.AnalysisException: u'java.lang.IllegalArgumentException: Can not create a Path from an 空字符串;'

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/'")

有人可以建议我缺少的参数吗?

【问题讨论】:

  • 顺便说一句,您不需要路径中的最后一个斜杠。 LOCATION 's3://my-bucket/test'
  • 还是不行。错误是一样的

标签: amazon-web-services pyspark hive aws-glue-data-catalog aws-glue-spark


【解决方案1】:

在没有指定位置的情况下创建数据库时会出现此问题:

CREATE DATABASE db_name;

要解决此问题,请在创建数据库时指定位置:

CREATE DATABASE db_name LOCATION 's3://my-bucket/db_path';

然后,创建一个表:

USE db_name;
CREATE TABLE IF NOT EXISTS abc LOCATION 's3://my-bucket/db_path/abc' as (SELECT * from my_table)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-13
    • 2017-12-12
    • 1970-01-01
    • 2018-03-08
    • 2021-07-26
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多