在pyspark中如何检查pyspark被读入的格式?Delta vs parquet

gxwragnw  于 2022-11-28  发布在  Spark
关注(0)|答案(2)|浏览(202)

我有一个函数,可以读取增量格式或 parquet 格式文件。

def getData(filename,fileFormat)
      if data_format == "parquet":
        return spark.read.parquet(filename)
      elif data_format == "delta":
        return spark.read.format("delta").load(filename)

然后,我在某个分析函数中使用返回的pyspark.sql.dataframe.DataFrame

def someAnalyticalFunction(df)
  if df == "parquet":  #I know this isnt right but how do i check the data format?
     #do some analysis
  elif df == "delta"
     #do some slight different analysis

我可以在分析功能中检查一下, Dataframe (df)是什么格式的?

wvt8vs2t

wvt8vs2t1#

Spark无法做到这一点,但可以使用dbutils.fs检查delta元数据文件是否存在

xienkqul

xienkqul2#

您可以使用Delta Lake API中的isDeltaTable方法来执行此操作。

from delta.tables import DeltaTable

def check_format(spark: SparkSession, path: str) -> str:
    """ Return the format of the spark path """
    if DeltaTable.isDeltaTable(spark, path):
        return "delta"

    else:
        return "parquet"

相关问题