在没有Spark的情况下将Parquet读入Scala

时间:2018-10-01 10:49:11

标签: scala parquet

我有一个Parquet文件,我想在不使用Spark或其他大数据技术的情况下将其读入Scala程序。

我找到了项目

但示例不够详尽,无法使其正常工作。

Parquet-MR

https://stackoverflow.com/a/35594368/4533188提到了这一点,但是给出的示例并不完整。例如,不清楚path应该是什么。应该实现InputFile,应该怎么做?另外,从我看来,Parquet-MR不会直接将木地板数据作为标准Scala类截断。

鳗鱼

我在这里尝试过

导入io.eels.component.parquet.ParquetSource 导入org.apache.hadoop.conf.Configuration 导入org.apache.hadoop.fs。{FileSystem,Path}

val parquetFilePath = new Path("file://home/raeg/Datatroniq/Projekte/14. Witzenmann/Teilprojekt Strom und Spannung/python_witzenmann/src/data/1.parquet")
implicit val hadoopConfiguration = new Configuration()
implicit val hadoopFileSystem = FileSystem.get(hadoopConfiguration) // This is required

ParquetSource(parquetFilePath)
  .toDataStream()
  .collect
  .foreach(row => println(row))

但是我得到了错误

java.io.IOException: No FileSystem for scheme: file
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(ParquetReaderTesting.sc:2582)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(ParquetReaderTesting.sc:2589)
    at org.apache.hadoop.fs.FileSystem.access$200(ParquetReaderTesting.sc:87)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(ParquetReaderTesting.sc:2628)
    at org.apache.hadoop.fs.FileSystem$Cache.get(ParquetReaderTesting.sc:2610)
    at org.apache.hadoop.fs.FileSystem.get(ParquetReaderTesting.sc:366)
    at org.apache.hadoop.fs.FileSystem.get(ParquetReaderTesting.sc:165)
    at dataReading.A$A6$A$A6.hadoopFileSystem$lzycompute(ParquetReaderTesting.sc:7)
    at dataReading.A$A6$A$A6.hadoopFileSystem(ParquetReaderTesting.sc:7)
    at dataReading.A$A6$A$A6.get$$instance$$hadoopFileSystem(ParquetReaderTesting.sc:7)
    at #worksheet#.#worksheet#(ParquetReaderTesting.sc:30)

在我的工作表中。

0 个答案:

没有答案