如何在显示来自AWS S3的分区表的计数和架构时修复AWS Glue代码

时间:2019-06-28 10:12:53

标签: python amazon-web-services pyspark etl aws-glue

我正在尝试对记录进行计数并打印分区表的模式(以拼花形式)。我只是在AWS Glue控制台中执行此操作(因为我无权连接到开发人员终端节点)。但是,我不认为我的查询会产生任何结果。请参阅下面的代码。有什么建议吗?

%pyspark
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext

glueContext = GlueContext(SparkContext.getOrCreate())

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "s3", table_name = "subscriber", push_down_predicate = "(date=='2018-12-06')", transformation_ctx = "datasource0")

df = datasource0.toDF()
print df.count()
df.printSchema()

1 个答案:

答案 0 :(得分:1)

我不确定在Glue中使用print ...我建议使用日志记录来打印结果。您可以获取记录器对象并像这样使用它:

spark = glueContext.spark_session
log4jLogger = spark.sparkContext._jvm.org.apache.log4j
logger = log4jLogger.LogManager.getLogger(__name__)

logger.info(df.count())

然后,您可以从作业控制台访问特定作业执行的日志。例如,您应该可以在其中看到DF计数。

您可以在下图中看到带有生成结果的示例代码: enter image description here