可能是由于Schema不正确或数据源被修改,导致AWS Glue Job无法正确识别列。可以在job中添加代码来手动指定Schema,并且验证源数据是否与指定的Schema匹配。
例如,在Spark代码中手动指定Schema:
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
#手动指定Schema
customSchema = StructType([
StructField("column1", StringType(), True),
StructField("column2", IntegerType(), True),
StructField("column3", StringType(), True)
])
#读取数据源并应用自定义Schema
datasource = spark.read.format("csv").option("header", "true").schema(customSchema).load("s3://your-bucket/your-data.csv")
#进行数据处理等操作
...
这样的话,即使数据源的列顺序或列名发生变化,也可以通过手动指定Schema来确保列的正确性。