问题标签 [aws-glue-spark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 为什么我找不到适用于 python 3 的 awsglue 包
Awsglue 包仍在使用 python 2.7,并且与 python 3 不兼容。如果我想在 python3 上使用 awsglue,我该怎么办?
scala - 使用 AWS Glue 连接到 Presto 数据库。无法通过 SSL 密钥库或证书
我在使用 AWS 粘合作业连接到 Presto 时遇到问题。代码是用 Spark Scala 编写的。我正在尝试使用以下代码连接到 Presto。
我收到以下错误
2020-12-18 20:36:52,376 错误 [main]glue.ProcessLauncher (Logging.scala:logError(70)):用户类中的异常:java.sql.SQLException:设置 SSL 时出错:s3:/test/presto_client .keystore (没有这样的文件或目录) io.prestosql.jdbc.PrestoDriverUri.setupClient(PrestoDriverUri.java:235) io.prestosql.jdbc.PrestoDriver.connect(PrestoDriver.java:88) org.apache.spark.sql.execution .datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils.scala:63) org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils.scala:54 ) org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:56) org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation$.getSchema(JDBCRelation.scala:210 ) org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider。createRelation(JdbcRelationProvider.scala:35) org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:318) org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223) org. apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211) org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:167) sddsurwithDAXreporting$.main(sddsurwithDAXreportingPresto.scala:89) sddsurwithDAXreporting.main(sddsurwithDAXreportingPresto .scala) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.调用(Method.java:498)com.amazonaws.services.glue.SparkProcessLauncherPlugin$class.invoke(ProcessLauncher.scala:38)com。amazonaws.services.glue.ProcessLauncher$$anon$1.invoke(ProcessLauncher.scala:67) com.amazonaws.services.glue.ProcessLauncher.launch(ProcessLauncher.scala:108) com.amazonaws.services.glue.ProcessLauncher$.main (ProcessLauncher.scala:21) com.amazonaws.services.glue.ProcessLauncher.main(ProcessLauncher.scala)
我尝试通过 pem 证书,但仍然失败并出现相同的错误。我已经检查了所有的许可。我有一个从同一个文件夹访问的 jar 文件,我可以访问它。当我使用 Eclipse 从我的机器上运行相同的代码时,它运行良好。有人可以帮忙吗?我对 scala 相当陌生,这是我第一次尝试使用 SSL 证书连接到数据库。
pyspark - AWS Glue 将列选择解析为数组或结构
关于如何解决以下问题的想法用完了。Glue 数据目录中的表具有以下架构:
如果我尝试ref
使用
我丢失了记录。
关于我如何做的任何想法:
- 过滤 DataFrame 是否
_field.ref
是array
或struct
- 将
struct
记录转换为array
或反之亦然
aws-glue - 如何创建嵌套的 CASE 或 IF 以更改列中的数据值
我需要从 aws 胶水的列中更新数据值,我正在寻找类似 CASE 语句或 IF ELSE 嵌套的内容。
例子:
谢谢阅读 :)
pyspark - 是否可以将每个 aws 胶水动态记录写入不同的 s3 路径
我是新的 AWS 胶水。我需要将动态框架中的每条记录写入 s3 中的自定义文件夹路径。例如
以下是目标 s3 路径:
在这里,'year', 'month', 'day', 'somegroupid'
可作为每条记录中的列使用。
是否可以使用记录中的列值来决定 JSON 文件的写入路径?
apache-spark - 是否有更系统的方法来解决缓慢的 AWS Glue + PySpark 执行阶段?
我有这个代码片段,我仅使用 100 条记录以独立模式在本地运行:
该模式包含 89 列,所有列都具有字符串数据类型,但 5 列具有结构数据类型的数组。数据大小为 3.1 MB。
此外,以下是有关用于运行代码的环境的一些信息:
- spark.executor.cores:2
- spark.executor.id:驱动程序
- spark.driver.memory:1000M
问题是我不知道为什么第 1 阶段需要 12 分钟才能完成,而它只需要计算 100 条记录。我找不到“扫描镶木地板”和“交换”任务的含义,如图所示: Stage 1 DAG Visualization
我的问题是,是否有更系统的方法来理解这些任务的含义。作为初学者,我非常依赖 Spark UI,但它并没有提供太多关于它已执行的任务的信息。我能够找到哪个任务花费的时间最多,但我不知道为什么会这样以及如何系统地解决它。
apache-spark-sql - 有没有办法知道 S3 表中写入的最后一个分区是什么,用于 AWS Glue 作业中的下推谓词?
我试图从使用下推谓词读取动态帧的胶水作业中读取写入 S3 表中的最后一个分区。
我要读取的表每天都会加载,因此会为该每日数据创建一个新分区。
我有另一个 Glue 作业将从该表中读取,但我只想读取最后一个分区中写入的最后一个数据。我不想阅读整个表格然后获取最新数据(大数据量、低效率、成本......),因为我可以使用下推谓词。问题是,最后一个分区的值每天都在变化。
我尝试使用 boto3 列出 S3 中的对象,并使用 get_partitions 函数检索值,我知道我可以在 Athena 中查询:
但是有没有更简单的方法可以在胶水作业中实现这一点?
谢谢
amazon-web-services - AWS Glue ETL 作业的 Scala 和 Java 版本是什么?
到目前为止,我正在使用带有 Java 8 的 scala 2.11 来构建 Glue ETL 作业使用的库。我们计划使用 Java 11 升级到 Scala 2.12,但不确定 Glue ETL 是否支持它们。
oracle - 当我们使用 from_options aws 胶水时,hashpartitions 和 no of worker 之间有什么关系?
我使用以下代码创建了粘合作业以从 oracle 读取数据。
如果我使用查询选项,则需要 8 小时,如果我不执行查询,则需要 45 分钟,查询选项是否正确?
我的数据大小是 318049228,我使用的是 Worker 类型:G1.X 和工人数量:100 和“hashpartitions”:'100' 它需要 45 分钟,hashpartitions 和工人数量之间的关系是什么?