8

magellan-1.0.4-s_2.11在 spark 笔记本中导入时遇到问题。我已经从https://spark-packages.org/package/harsha2010/magellan下载了 jar,并尝试将其放入SPARK_HOME/bin/spark-shell --packages harsha2010:magellan:1.0.4-s_2.11binStart of Customized Settings文件夹的 spark-notebook 文件部分。

这是我的进口

import magellan.{Point, Polygon, PolyLine}
import magellan.coord.NAD83
import org.apache.spark.sql.magellan.MagellanContext
import org.apache.spark.sql.magellan.dsl.expressions._
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._

而我的错误...

<console>:71: error: object Point is not a member of package org.apache.spark.sql.magellan
       import magellan.{Point, Polygon, PolyLine}
              ^
<console>:72: error: object coord is not a member of package org.apache.spark.sql.magellan
       import magellan.coord.NAD83
                       ^
<console>:73: error: object MagellanContext is not a member of package org.apache.spark.sql.magellan
       import org.apache.spark.sql.magellan.MagellanContext

然后,我尝试像其他任何库一样导入新库,方法是将其放入main script类似的位置:

$lib_dir/magellan-1.0.4-s_2.11.jar"

这没有用,我只能挠头想知道我做错了什么。如何将 magellan 等库导入 spark notebook?

4

3 回答 3

1

尝试评估类似

:dp "harsha2010" % "magellan" % "1.0.4-s_2.11"

它将库加载到 Spark 中,允许对其进行import编辑 - 假设它可以通过 Maven 存储库获得。就我而言,它失败并显示一条消息:

failed to load 'harsha2010:magellan:jar:1.0.4-s_2.11 (runtime)' from ["Maven2 local (file:/home/dev/.m2/repository/, releases+snapshots) without authentication", "maven-central (http://repo1.maven.org/maven2/, releases+snapshots) without authentication", "spark-packages (http://dl.bintray.com/spark-packages/maven/, releases+snapshots) without authentication", "oss-sonatype (https://oss.sonatype.org/content/repositories/releases/, releases+snapshots) without authentication"] into /tmp/spark-notebook/aether/b2c7d8c5-1f56-4460-ad39-24c4e93a9786

我认为文件太大,在下载整个文件之前连接被中断。

解决方法

所以我从以下位置手动下载了 JAR:

http://dl.bintray.com/spark-packages/maven/harsha2010/magellan/1.0.4-s_2.11/

并将其复制到:

/tmp/spark-notebook/aether/b2c7d8c5-1f56-4460-ad39-24c4e93a9786/harsha2010/magellan/1.0.4-s_2.11

然后:dp命令起作用了。尝试先调用它,如果它失败,请将 JAR 复制到正确的路径中以使事情正常进行。

更好的解决方案

我应该首先调查为什么下载无法修复它......或者将该库放在我本地的 M2 存储库中。但这应该让你继续前进。

于 2017-03-12T03:23:11.633 回答
1

我建议检查一下:

https://github.com/spark-notebook/spark-notebook/blob/master/docs/metadata.md#import-download-dependencies

https://github.com/spark-notebook/spark-notebook/blob/master/docs/metadata.md#add-spark-packages

我认为:dp魔术命令已被贬值,相反,您应该在笔记本元数据中添加自定义依赖项。您可以进入菜单编辑 > 编辑笔记本元数据,添加如下内容:

"customDeps": [
   "harsha2010 % magellan % 1.0.4-s_2.11"
]

完成后,您将需要重新启动内核,您可以在浏览器控制台中检查软件包是否已正确下载。

于 2017-04-12T08:56:39.157 回答
0

最简单的方法是,您应该设置或添加EXTRA_CLASSPATH环境变量以指向您.jar下载的文件: export EXTRA_CLASSPATH = </link/to/your.jar>set EXTRA_CLASSPATH= </link/to/your.jar>在wondows OS 中。在这里找到详细的解决方案

于 2018-01-10T13:39:23.313 回答