【问题标题】:How to create empty dataframe if file is not available in pyspark?如果pyspark中没有文件,如何创建空数据框?
【发布时间】:2020-09-30 17:07:52
【问题描述】:

我正在读取文件,然后使用 pyspark 创建一个临时视图,但我想知道文件是否不可用,然后它会创建空数据框。

我正在使用以下代码:

df_read_file = sqlContext.read.format('com.databricks.spark.csv').option("delimiter", '\001').options(header='true',inferSchema='false').load(row['Source File Name Lnd'])

df_read_file.createOrReplaceTempView(row['landingdfname'])

临时视图名称 - vw_case

但是假设如果源文件名 Lnd 中没有文件,那么它会创建空数据框吗?

下面的代码会产生什么结果?

spark.sql("Select * from vw_case").show()

【问题讨论】:

    标签: python python-3.x dataframe apache-spark pyspark


    【解决方案1】:

    如果您的文件在指定位置row['Source File Name Lnd'] 下不存在,则加载函数将返回错误。您无法加载不存在的文件,因此您甚至无法访问您所询问的代码。

    解决丢失文件的最简单方法是在加载之前检查它们是否存在,然后忽略丢失的文件或为丢失的文件创建一个空数据框。这样的事情可能会有所帮助:

    if len(dbutils.fs.ls(row['Source File Name Lnd'])) > 0:
        df_read_file = sqlContext.read.format('com.databricks.spark.csv').option("delimiter", '\001').options(header='true',inferSchema='false').load(row['Source File Name Lnd'])
    else:
        df_read_file = sqlContext.createDataFrame(sc.emptyRDD(), StructType([]))
    
    df_read_file.createOrReplaceTempView(row['landingdfname'])
    

    【讨论】:

      猜你喜欢
      • 2012-07-27
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 2019-12-02
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多