相关疑难解决方法(0)

为什么 pyspark 中的 S3 目录源的 input_file_name() 为空?

我正在尝试获取通过 AWS Glue 中的 S3 数据目录加载的每个文件的输入文件名(或路径)。

读过一些input_file_name()应该提供这些信息的地方(尽管警告说这只在调用时有效,from_catalog而不是from_options,我相信我是!)。

所以下面的代码似乎应该可以工作,但总是为每个input_file_name.

import sys

from awsglue.context import GlueContext
from awsglue.job import Job
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from pyspark.sql.functions import input_file_name


args = getResolvedOptions(sys.argv, ['JOB_NAME', 'TempDir'])
sc = SparkContext()
gc = GlueContext(sc)
spark = gc.spark_session


job = Job(gc)
job.init(args['JOB_NAME'], args)


# Get the source frame from the Glue Catalog, which describes files in S3
fm_source = gc.create_dynamic_frame.from_catalog(
    database='database_name',
    table_name='table_name',
    transformation_ctx='fm_source',
) …
Run Code Online (Sandbox Code Playgroud)

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

4
推荐指数
2
解决办法
3781
查看次数