【问题标题】:How to import play framwork jar in spark-shell in windows?如何在 Windows 的 spark-shell 中导入播放框架 jar?
【发布时间】:2018-09-28 04:40:35
【问题描述】:

我正在使用 windows 机器并安装了 spark 和 scala 以供我学习。对于需要处理 json 输入数据的 spark-sql。

scala> sc
res4: org.apache.spark.SparkContext = org.apache.spark.SparkContext@7431f4b8

scala> import play.api.libs.json._
<console>:23: error: not found: value play
       import play.api.libs.json._
              ^

scala>

如何在我的 spark-shell commnad 中导入 play api。

【问题讨论】:

  • 您可以创建一个 build.sbt,其中包含 play 作为依赖项。然后加载 sbt 控制台,它应该可以工作。检查这个:stackoverflow.com/questions/17430164/…
  • @ShankarShastri。多谢。在 maven jar 中,我们提供 org.ocpsoft.commoncommon-api1.0.5.Final 在 mvn 中。如何在 sbt 文件中提供相同的条目。
  • 你能分享一下build.sbt,我可以创建一个答案并把它发回来。
  • 您的 spark 安装路径中应该有一个名为 jars 的目录。在我的 Mac 中,它位于 SPARK_HOME/libexec 目录下。您可以在该目录中复制所需的 jar 并重新启动 spark-shell 吗?这应该工作

标签: scala apache-spark


【解决方案1】:

如果您想在使用spark-shell 的同时使用其他库,则需要使用--jars 和/或--packages 运行spark-shell 命令。例如,要在您的 spark shell 中使用 play,请运行以下命令;

spark-shell --packages "com.typesafe.play":"play_2.11":"2.6.19"

更多信息,您可以使用spark-shell -h。希望对你有帮助!

【讨论】:

  • 非常感谢 ulubeyn。我认为这是 spark-shell 的短期解决方案。我怎样才能像 pom.xml 那样做永久的
  • 我可以推荐另一种方式,但我需要知道一件事;你想使用spark-shell 还是只使用spark
  • 我推荐你在 Scala 项目中使用 SBT,因为它是默认的构建工具。此外,您可以使用 SBT 文件做很多事情,例如创建自己的 SparkContext,如 here 所述。
  • 如果您正在开发 Spark 应用程序,最好使用包含 Spark 和 Play 作为依赖项的build.sbt,因为您可以进行自己的配置,或者创建您的 jar 以在云中重复运行/别的地方。如果您只是在开发一个简单的 Spark 作业,请创建一个 .scala 文件并使用 spark-shell 指定 play 作为依赖项来运行它。
猜你喜欢
  • 2016-11-06
  • 2017-04-13
  • 2022-01-06
  • 1970-01-01
  • 2012-06-24
  • 2011-11-11
  • 2015-02-11
  • 2013-11-20
  • 1970-01-01
相关资源
最近更新 更多