首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取Scala &Spark中的zst存档:本地zStandard库不可用

读取Scala &Spark中的zst存档:本地zStandard库不可用
EN

Stack Overflow用户
提问于 2021-04-14 21:15:08
回答 1查看 1.9K关注 0票数 2

我试图使用Scala上的Spark读取一个zst压缩文件。

代码语言:javascript
复制
 import org.apache.spark.sql._
 import org.apache.spark.sql.types._
 val schema = new StructType()
      .add("title", StringType, true)
      .add("selftext", StringType, true)
      .add("score", LongType, true)
      .add("created_utc", LongType, true)
      .add("subreddit", StringType, true)
      .add("author", StringType, true)
 val df_with_schema = spark.read.schema(schema).json("/home/user/repos/concepts/abcde/RS_2019-09.zst")

 df_with_schema.take(1)

不幸的是,这会产生以下错误:

org.apache.spark.SparkException:由于阶段失败而中止作业:第0.0阶段中的任务0失败1次,最近一次失败:阶段0.0中丢失的任务0.0 (TID 0) (192.168.0.101执行器驱动程序):java.lang.RuntimeException:本机zStandard库不可用:此版本的libhadoop是在没有zstd支持的情况下构建的。

我的hadoop检查看起来如下所示,但我从这里了解到Apache有自己的ZStandardCodec。

本机库检查:

  • hadoop: true /opt/hadoop/lib/本地/libhadoop.so.1.0.0
  • zlib: true /lib/x86_64-linux-gnu/libz.so.1
  • zstd : true /lib/x86_64-linux-gnu/libzstd.so.1
  • snappy: true /lib/x86_64-linux-gnu/libsnappy.so.1
  • lz4:真实版本:10301
  • bzip2: true /lib/x86_64-linux-gnu/libbz2.so.1
  • openssl:假EVP_CIPHER_CTX_cleanup
  • ISA: false libhadoop是在没有ISA-L支持的情况下构建的。
  • PMDK: false本机代码是在没有PMDK支持的情况下构建的。

任何想法都很感谢,谢谢!

更新1:根据这个帖子,我更好地理解了消息的含义,即在默认情况下编译Hadoop时不启用zstd,所以可能的解决方案之一显然是使用启用的标志构建它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-18 21:25:15

由于我不想自己构建Hadoop,并且受到使用这里的解决方案的启发,所以我已经将Spark配置为使用Hadoop本地库:

代码语言:javascript
复制
spark.driver.extraLibraryPath=/opt/hadoop/lib/native
spark.executor.extraLibraryPath=/opt/hadoop/lib/native

现在,我可以毫无问题地将zst归档文件读入DataFrame中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67099204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档