标签: aws-glue-spark

“无法从空字符串创建路径”使用 S3 路径在 hive 中出现“CREATE TABLE AS”错误

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

pyspark.sql.utils.AnalysisException:u'java.lang.IllegalArgumentException:无法从空字符串创建路径;'

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

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

hive amazon-web-services pyspark aws-glue-data-catalog aws-glue-spark

8
推荐指数
1
解决办法
3万
查看次数

G.1X 和 G.2X 的 AWS Glue 工作人员定价详细信息

已搜索 AWS Glue 文档,但找不到 AWS Glue 工作线程类型 G.1X 和 G.2X 的定价详细信息。有人可以解释一下标准、G.1X 和 G.2X 之间是否没有成本差异吗?

我所能看到的 Glue 定价部分是“您需要按每 DPU 小时 0.44 美元计费,增量为 1 秒,四舍五入到最接近的秒。使用 Glue 版本 2.0 的 Glue Spark 作业的最短计费持续时间为 1 分钟。 ”。这与工人类型无关吗?

感谢对此的任何投入。 …

amazon-web-services aws-glue aws-glue-data-catalog aws-glue-spark

8
推荐指数
1
解决办法
2万
查看次数

AWS Glue 失败时“日志组不存在”

我第一次使用 AWS Glue 的作业,因此我的作业不起作用是正常的,但我看不到任何有关错误的详细日志,因为当我单击“错误日志”链接或“日志”链接 我总是在 AWS CloudWatch 中收到此消息:

* Log group does not exist
The specific log group: /aws-glue/jobs/error does not exist in this account or region.

* An error occurred while describing log streams.
c.substring is not a function
Run Code Online (Sandbox Code Playgroud)

如何查看 AWS Glue 日志?AWS Glue 不会自动创建日志组吗?

amazon-cloudwatch aws-glue aws-glue-spark

6
推荐指数
1
解决办法
4425
查看次数

AWS Glue Python 作业不创建新的数据目录分区

我使用 Glue Studio 创建了一个 AWS Glue 作业。它从 Glue 数据目录获取数据,进行一些转换,然后写入不同的数据目录。

配置目标节点时,我启用了运行后创建新分区的选项:

在此输入图像描述

该作业成功运行,数据以正确的分区文件夹结构写入 S3,但在实际的数据目录表中没有创建新分区 - 我仍然需要运行 Glue Crawler 来创建它们。

生成的脚本中负责创建分区的代码如下(作业的最后两行):

DataSink0 = glueContext.write_dynamic_frame.from_catalog(frame = Transform4, database = "tick_test", table_name = "test_obj", transformation_ctx = "DataSink0", additional_options = {"updateBehavior":"LOG","partitionKeys":["date","provider"],"enableUpdateCatalog":True})
job.commit()
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?为什么没有创建新分区?如何避免运行爬网程序才能在 Athena 中获取可用数据?

我正在使用 Glue 2.0 - PySpark 2.4

amazon-web-services apache-spark-sql pyspark aws-glue aws-glue-spark

6
推荐指数
1
解决办法
1778
查看次数

如何停止/退出 AWS Glue 作业 (PySpark)?

我成功运行了一个 AWS Glue 作业,用于转换数据以进行预测。如果达到特定条件,我想停止处理并输出状态消息(正在运行):

if specific_condition is None:
    s3.put_object(Body=json_str, Bucket=output_bucket, Key=json_path )
    return None
Run Code Online (Sandbox Code Playgroud)

这会产生“SyntaxError:'return'外部函数”,我尝试过:

if specific_condition is None:
    s3.put_object(Body=json_str, Bucket=output_bucket, Key=json_path )
    job.commit()
Run Code Online (Sandbox Code Playgroud)

这不是在 AWS Lambda 中运行,而是使用 Lambda 启动的胶水作业(例如 start_job_run())。

amazon-web-services aws-glue aws-glue-spark

6
推荐指数
1
解决办法
6553
查看次数

AWS Glue 错误 - 运行 python shell 程序时提供的输入无效

我有 Glue 作业,一个 python shell 代码。当我尝试运行它时,我最终收到以下错误。 Job Name : xxxxx Job Run Id : yyyyyy failed to execute with exception Internal service error : Invalid input provided 它不是特定于代码的,即使我只是输入

import boto3
print('loaded')
Run Code Online (Sandbox Code Playgroud)

单击运行作业选项后,我立即收到错误消息。这里有什么问题呢?

python amazon-s3 amazon-web-services aws-glue aws-glue-spark

6
推荐指数
1
解决办法
3739
查看次数

哪些选项可以传递给 AWS Glue DynamicFrame.toDF()?

toDF() 方法的文档指定我们可以将选项参数传递给该方法。但它没有指定这些选项是什么(https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-extensions-dynamic-frame.html)。有谁知道是否有关于此的进一步文档?我对从 DynamicFrame 创建 DataFrame 时传递架构特别感兴趣。

amazon-web-services aws-glue aws-glue-spark

5
推荐指数
1
解决办法
2979
查看次数

如何配置 Spark / Glue 以避免在 Glue 作业成功执行后创建空的 $_folder_$

我有一个由 Glue 工作流程触发的简单胶水 etl 作业。它从爬虫表中删除重复数据并将结果写回 S3 存储桶。作业已成功完成。但是,spark 生成“$ folder $”的空文件保留在 s3 中。它在层次结构中看起来不太好并会导致混乱。有没有办法在成功完成工作后配置火花或胶水上下文来隐藏/删除这些文件夹?

在此处输入图片说明

---------------------S3镜像--------------------- 在此处输入图片说明

amazon-web-services aws-glue aws-glue-workflow aws-glue-spark

5
推荐指数
1
解决办法
828
查看次数

具有多种数据类型的 Pyspark SQL 数据框映射

我有一个胶水中的 pyspark 代码,我想创建一个具有映射结构的数据框,该数据框是整数和字符串的组合。

样本数据:

{ "Candidates": [
    {
      "jobLevel": 6,
      "name": "Steven",
    },    {
      "jobLevel": 5,
      "name": "Abby",
    } ] }
Run Code Online (Sandbox Code Playgroud)

因此,我尝试使用下面的代码来创建地图数据类型。但每次整数数据类型 jobLevel 都会转换为字符串数据类型。有什么建议可以通过保留作业级别的数据类型来完成此任务吗?

使用的代码:

df = spark.sql("select Supervisor_name, 
           map('job_level', INT(job_level_name), 
          'name', employeeLogin) as Candidates 
     from dataset_1")
Run Code Online (Sandbox Code Playgroud)

dataframe apache-spark-sql pyspark aws-glue aws-glue-spark

5
推荐指数
1
解决办法
2014
查看次数

不带脚本的 AWS Glue 作业,仅 Spark/Scala JAR

有没有办法在 AWS 中运行 Glue 作业,其中所有必要的代码都内置到 JAR 工件中并上传到 S3?

现在我能做的最好的事情就是像占位符包装脚本一样

import project.ActualMainClass

object ScriptMain {
    def main(sysArgs: Array[String]): Unit = {
        ActualMainClass.main(sysArgs)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我可以跳过额外的包装器并仅提供 JAR 和入口点,那就太好了。

aws-glue aws-glue-spark

5
推荐指数
0
解决办法
955
查看次数