加载 spark df 时检查文件是否符合模式
Check if the file respects the schema when loading a spark df
我正在为加载的 df 手动定义模式:
my_schema= StructType([ \
StructField("foo",StringType(),True), \
StructField("bar",StringType(),True)
])
df = spark.read\
.schema(my_schema)\
.option("multiline", True)\
.json('my_path')
有没有办法在加载之前确保此文件符合架构?如果有不匹配的列,我不想加载文件。我试图避免加载 df 来执行此检查。
我认为 "pure"
Spark API 不可能。
使用 Spark API 您可以读取具有特定模式的输入文件并限制为 1
行(例如),而不是 运行 您的模式验证步骤:
df = spark.read \
.schema(my_schema) \
.option("multiline", True) \
.json('my_path') \
.limit(1)
我正在为加载的 df 手动定义模式:
my_schema= StructType([ \
StructField("foo",StringType(),True), \
StructField("bar",StringType(),True)
])
df = spark.read\
.schema(my_schema)\
.option("multiline", True)\
.json('my_path')
有没有办法在加载之前确保此文件符合架构?如果有不匹配的列,我不想加载文件。我试图避免加载 df 来执行此检查。
我认为 "pure"
Spark API 不可能。
使用 Spark API 您可以读取具有特定模式的输入文件并限制为 1
行(例如),而不是 运行 您的模式验证步骤:
df = spark.read \
.schema(my_schema) \
.option("multiline", True) \
.json('my_path') \
.limit(1)