如何使用Sparklyr添加一个罐子?

清洁

当我尝试使用此代码使用Rstudio和sparklyr访问Hive表时:

library(sparklyr)
library(dplyr)
Sys.setenv(SPARK_HOME="/usr/hdp/current/spark2-client") # got from ambari spark2 configs
sc <- spark_connect(master = "yarn-client", config = config, version = '2.1.0')

library(DBI)
tabTweets <- dbGetQuery(sc, "SELECT * FROM tweets0 LIMIT 10")

我收到此错误:

Error in value[[3L]](cond) : 
  Failed to fetch data: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.openx.data.jsonserde.JsonSerDe

这是因为tweets0是使用JsonSerDe创建的。例如,在通过以下方式使用Hive CLI时,它很容易修复:

Add jar /usr/hdp/2.4.2.0-258/hive/lib/json-serde-1.3.7-jar-with-dependencies.jar;

那么如何使用sparklyr做一个等效的添加罐子呢?

编辑:我尝试过此:

spark_dependencies <- function(spark_version, scala_version, ...) {
  sparklyr::spark_dependency(
    jars = c(
      system.file(
        sprintf("/usr/hdp/2.4.2.0-258/hive/lib/json-serde-1.3.7-jar-with-dependencies.jar"),
    package = "JsonSerDe"
      )
    )
  )
}
.onLoad <- function(libname, pkgname) {
  sparklyr::register_extension(pkgname)
}

library(JsonSerDe)

但是仍然存在相同的错误,并且库(JsonSerDe)给出了:

Error in library(JsonSerDe) : there is no package called ‘JsonSerDe’

我在Spark日志中看不到有关添加依赖项的任何信息。

清洁

这个问题不是一个闪闪发光的问题:它是tez.lib.uris中的一个设置。更改为:

/hdp/apps/${hdp.version}/tez/tez.tar.gz,hdfs://master.royble.co.uk:8020/jars/json-serde-1.3.7-jar-with-dependencies.jar

(注意:逗号和hdfs路径后没有空格)。但是问题:

Error in library(JsonSerDe) : there is no package called ‘JsonSerDe’

仍然站着,我会接受一个答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何测试一个罐子是否是OSGi罐子?

如何在齐柏林飞艇中添加一个罐子?

如何找到行家依赖进口的一个罐子的使用情况如何?

分发一个罐子

如何使用另一个罐子中的args运行main方法?

如何创建使用摇篮4.4所有依赖一个罐子?

Java,多个罐子还是一个大罐子?

如何创建一个罐子。在课堂上使用它。在命令行中使用jar执行类?

自动运行一个罐子

从罐子里写一个属性

与一个较小的罐子相比,建造一个大罐子的优缺点?

想知道如何知道一个罐子来自哪里

如何建立一个可执行的脂肪罐子摇篮与实现依赖

如何找出为什么Maven包含了一个罐子?

大厦C ++和在一个罐子使用CMake和Maven和捆绑Java代码

如何使用JavaScript在名称属性上添加一个?

我可以添加含有一个罐子及其相关罐作为Maven的依赖关系的目录?

AvalonDock:如何使用 ILayoutUpdateStrategy 在另一个文档旁边添加一个文档

如何使用Java脚本从一个NotesDocument向另一个添加一个docID

logback.xml无法在一个罐子中工作

从詹金斯开始和停止一个罐子

这种依赖性为我提供了一个罐子的两个版本。我该如何解决?

使用 sparklyr 调用 collect_list 时根据另一个变量保留顺序

如何在Android中的一个应用程序中的单独的罐子中有多个应用程序类

如何本地jar添加脂肪罐子作为依赖使用Maven?

如何添加一个指针数组?

如何仅添加一个BottomNavigationBarItem

MVC如何添加一个TimePicker

如何从一个类加载器加载一个罐子里获得了系统控制台?