PySpark - 读取镶木地板文件但不是同一文件夹中的另一个?

Posted

技术标签:

【中文标题】PySpark - 读取镶木地板文件但不是同一文件夹中的另一个?【英文标题】:PySpark - Reads on parquet file but not another in the same folder? 【发布时间】:2020-04-21 13:50:55 【问题描述】:

我真的什么都不懂了...PySpark 不会读取同一文件夹中的所有文件。

ls

返回:

 Verzeichnis von C:\Users\####\Data_Projects\NPL

21.04.2020  15:41    <DIR>          .
21.04.2020  15:41    <DIR>          ..
21.04.2020  13:18    <DIR>          .ipynb_checkpoints
21.04.2020  14:50    <DIR>          IMBD_Reviews
21.04.2020  15:40    <DIR>          imdb_reviews_preprocessed
21.04.2020  14:48        13.717.398 imdb_reviews_preprocessed.parquet.zip
21.04.2020  15:38            21.738 NPL with pyspark.ipynb
23.10.2016  19:47    <DIR>          sentiments.parquet
21.04.2020  14:51            38.387 sentiments.parquet.zip
21.04.2020  14:52    <DIR>          tweets.parquet
21.04.2020  14:51           136.483 tweets.parquet.zip
               4 Datei(en),     13.914.006 Bytes
               7 Verzeichnis(se),  1.552.965.632 Bytes frei
tweets_df = sqlContext.read.parquet('tweets.parquet')

工作得很好,而且

rewievs = sqlContext.read.parquet("imdb_reviews_preprocessed.parquet")

返回错误

 An error occurred while calling o541.parquet.
: org.apache.spark.sql.AnalysisException: Path does not exist: file:/C:/Users/####/Data_Projects/NPL/imdb_reviews_preprocessed/imdb_reviews_preprocessed.parquet;
...

有什么想法吗?

【问题讨论】:

似乎有一个名为 imdb_reviews_preprocessed(没有 .parquet)扩展名的目录。你能试着读那个吗? 你可以这样尝试——sqlContext.read.parquet("imdb_reviews_preprocessed/*.parquet") @Srinivas 这有帮助!你能解释一下发生了什么吗? 您已经给出了 - sqlContext.read.parquet("imdb_reviews_preprocessed.parquet") ,该位置没有 imdb_reviews_preprocessed.parquet 文件。 【参考方案1】:
  // get parquet files in folder
  val f1 = spark.sparkContext.wholeTextFiles("/tmp/*.parquet")
    .toDF("fileName", "dataInFile")
    .select('fileName)


  // DataFrame with files parquet in folder
  val f10 = spark.read.parquet("/tmp/*.parquet")

【讨论】:

以上是关于PySpark - 读取镶木地板文件但不是同一文件夹中的另一个?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pyspark 从 s3 位置读取镶木地板文件的文件夹到 pyspark 数据帧

Pyspark:无法从 SparkFiles 读取镶木地板文件

我对镶木地板文件和 python 完全陌生,谁能告诉我如何在 pyspark 中读取带有标题的镶木地板文件

从目录读取镶木地板文件时,pyspark不保存

pyspark 使用动态日期范围读取镶木地板文件分区数据

Inferschema 检测列作为字符串而不是来自 pyspark 中镶木地板的双精度