您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Pandas无法读取在PySpark中创建的实木复合地板文件

Pandas无法读取在PySpark中创建的实木复合地板文件

由于即使使用较新的pandas版本,这似乎仍然是一个问题,因此我编写了一些函数来规避此问题,这是更大的pyspark helpers库的一部分:

import pandas as pd
import datetime

def read_parquet_folder_as_pandas(path, verbosity=1):
  files = [f for f in os.listdir(path) if f.endswith("parquet")]

  if verbosity > 0:
    print("{} parquet files found. Beginning reading...".format(len(files)), end="")
    start = datetime.datetime.Now()

  df_list = [pd.read_parquet(os.path.join(path, f)) for f in files]
  df = pd.concat(df_list, ignore_index=True)

  if verbosity > 0:
    end = datetime.datetime.Now()
    print(" Finished. Took {}".format(end-start))
  return df


def read_parquet_as_pandas(path, verbosity=1):
  """Workaround for pandas not being able to read folder-style parquet files.
  """
  if os.path.isdir(path):
    if verbosity>1: print("Parquet file is actually folder.")
    return read_parquet_folder_as_pandas(path, verbosity)
  else:
    return pd.read_parquet(path)

这假定拼花地板“文件”中的相关文件(实际上是一个文件夹)以“ .parquet”结尾。这适用于数据砖导出的拼花文件,也可以与其他文件一起使用(未经测试,对评论中的反馈感到高兴)。

read_parquet_as_pandas()如果事先不知道是否为文件夹,则可以使用该功能

其他 2022/1/1 18:46:51 有370人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶