我正在从JSON文件中加载一个预定义的模式,用于我摄取到Azure数据湖中的特定数据集。包含模式的JSON文件也存储在数据湖上。
varSchema = 'abfss://landing@[hidden].dfs.core.windows.net/'+parSourceSystemName+'/'+parDatasetName+'.json'
rdd = spark.sparkContext.wholeTextFiles(varSchema)
text = rdd.collect()[0][1]
dict = json.loads(str(text))
dataSchema = StructType.fromJson(dict)
我想获取这个模式变量中的number字段,这样我就可以将它与从着陆容器中的文件加载的子框架的number列进行比较,以确定新着陆数据中是否有模式更改。
如果Schema声明应该有20个字段,但着陆数据文件包含21个-我会知道源系统添加了一个新字段。
1条答案
按热度按时间qzwqbdag1#
使用模式创建一个空DataFrame
将实际数据加载到另一个DF
获取schema中的字段数和着陆数据DF中的列数,并比较它们:(我假设您需要打印语句)