我正在尝试将压缩的csv文件(.bz2)读取为数据帧。我的代码如下
// read the data
Dataset<Row> rData = spark.read().option("header", true).csv(input);
当我在IDE中尝试时,这是可行的。我可以读取数据并对其进行处理,但当我尝试使用maven构建数据并在命令行上运行它时,会出现以下错误
Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: csv. Please find packages at http://spark.apache.org/third-party-projects.html
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:569)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute(DataSource.scala:86)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:86)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:325)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152)
at org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:415)
at org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:352)
at com.cs6240.Driver.main(Driver.java:28)
Caused by: java.lang.ClassNotFoundException: csv.DefaultSource
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$anonfun$apply$13.apply(DataSource.scala:554)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$anonfun$apply$13.apply(DataSource.scala:554)
at scala.util.Try$.apply(Try.scala:192)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25.apply(DataSource.scala:554)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25.apply(DataSource.scala:554)
at scala.util.Try.orElse(Try.scala:84)
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:554)
... 7 more
我不确定我是否在这里错过了什么。读取csv文件是否有一些依赖项?根据留档,Spark 2. x. x内置了对此的支持。
我按照这个答案中的步骤解决了这个问题。https://stackoverflow.com/a/39465892/2705924
基本上有一些问题与装配插件和当我使用阴影插件和使用这个
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
我正试图从压缩的csv文件中获取数据。有没有一种方法可以做到这一点,而不解压整个文件?如果没有,我如何解压文件并有效地读取它们?
我在读取压缩的csv文件时出错。错误如下:“zlib.error:解压缩时错误-3:设置的距离无效” 代码: 我在文件上尝试了Gunzip,它没有任何问题。我使用Gunzip-t。它给rc 0。
我在on文件夹的几个zip文件中有几个csv文件,例如: null zip中的一个csv是这样工作的: 你知道如何优化这个循环吗?
看起来有点讽刺,但当我读2GB的时候。csv文件逐行使用BufferedReader,耗时约4.5秒。我用大约230MB的gzip压缩了文件。我使用了用BufferedReader包装的GZIPInputStream来读取。gz文件。大约用了8.5秒。 我知道InputStream接口读取的是字节数据,而不是读卡器,但我认为如果一个200MB的文件加载到内存会更快。是否可以使用实现更好的性能。gz
我们如何读取压缩成多个文件的csv文件? 由于FAT存储格式的4 GB限制,我将csv文件合并为多个zip文件,如和。
当我试图用python 3.8读取CSV zip文件时。5. 我得到错误:该压缩方法不受支持