使用pyspark比较拼花地板文件的元数据

使用pyspark比较拼花地板文件的元数据,pyspark,schema,metadata,parquet,Pyspark,Schema,Metadata,Parquet,我正在使用pyspark,在这种情况下,我需要比较2个拼花地板文件的元数据 示例:- 拼花地板1模式为: 1,ID,字符串 2、地址字符串 日期,日期 拼花地板2模式为: 1,ID,字符串 日期,日期 3、地址字符串 这应该给我一个区别,因为拼花地板2中的第2列移到了第3列 谢谢, VK在Spark中,没有本机命令来比较头。您的问题可以通过以下方式解决: from pyspark.sql import SparkSession spark = SparkSession.builder.getO

我正在使用pyspark,在这种情况下,我需要比较2个拼花地板文件的元数据

示例:-

拼花地板1模式为: 1,ID,字符串 2、地址字符串 日期,日期

拼花地板2模式为: 1,ID,字符串 日期,日期 3、地址字符串

这应该给我一个区别,因为拼花地板2中的第2列移到了第3列

谢谢,
VK

在Spark中,没有本机命令来比较头。您的问题可以通过以下方式解决:

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

df1 = spark.read.parquet('path/to/file1.parquet', header='true')
df2= spark.read.parquet('path/to/file2.parquet', header='true')

df1_headers = df1.columns
df2_headers = df2.columns

# Now in Python you could compare the lists with the headers
# You don't need Spark to compare simple headers :-)

谢谢,header=True不起作用,但我们可以将列放入列表中。现在的问题是,我需要按顺序比较,如果顺序也发生了变化,那么也应该报告。。你能建议我们如何实现这一点吗?我刚刚添加了这个,它给出了范围内i的期望结果(len(df1_头)):a=(diff(df2_头[i],df1_头[i])如果a:print(df1_头[i],df2_头[i])@Vishvanath在头中有一个输入错误,但我修复了它。您想要的比较与Spark无关,而是一个Python问题,因为您需要比较列表。如果只使用Spark创建列,那么这就是Python的问题。因此,您现在可以检查我的更正答案,如果它有效,请接受答案并创建一个带有比较的新答案(不带火花标记)。我们还好吗?