scala - 无法在 spark-shell 中导入 cosmosDB 包
问题描述
我正在尝试将一些数据从数据框上传到 azure cosmosDB。
我已经下载了以下 jar 文件并与 eventHub_Jars 一起添加到我的本地文件夹中。
azure-cosmosdb-spark_2.3.0_2.11-1.3.3.jar
azure-cosmosdb-2.0.0.jar
azure-documentdb-1.16.4.jar
documentdb-bulkexecutor-2.4.1.jar
下面是我用来打开正在运行的 shell 脚本的脚本。
shell-script --master local --jars eventHub_Jars/azure-cosmosdb-spark_2.3.0_2.11-1.3.3.jar
当我将 shell 脚本与 eventHub jar 或其他 jar 一起用作
spark-shell --master local --packages com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.13 --jars eventHub_Jars/scala-library-2.11.12.jar, azure-eventhubs-spark_2.11-2.3.2.jar, azure-eventhubs-1.0.2.jar, proton-j-0.25.0.jar, scala-java8-compat_2.11-0.9.0.jar, slf4j-api-1.7.25.jar, azure-cosmosdb-spark_2.3.0_2.11-1.3.3.jar
Shell脚本正在打开但是当我尝试导入时
import com.microsoft.azure.cosmosdb.spark.config.Config
它抛出以下错误
error: object cosmosdb is not a member of package com.microsoft.azure
import com.microsoft.azure.cosmosdb.spark.config.Config
上述错误的原因可能是什么?有语法问题吗?似乎唯一添加的第一个 jar 正在工作。如果我们尝试从任何其他 jar 中导入任何包,它会抛出上述错误!
解决方案
当我尝试这个时,我遇到了--jars
使用相对路径来检索 jar 文件的选项的问题,除非我在存储 jar 文件的路径的开头添加了“file:///”。例如,如果 jar 文件位于(我创建的文件夹)中,则该选项/usr/local/spark/jars_added/
所需的路径是“*”代表您的 jar 名称的位置。--jars
file:///usr/local/spark/jars_added/*.jar
以下内容在您的机器上将有所不同,但是,您了解指定 jar 文件的想法。
spark-shell
--master local
--packages com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.13
--jars file:///usr/local/spark/jars_added/eventHub_Jars/scala-library-2.11.12.jar,
file:///usr/local/spark/jars_added/azure-eventhubs-spark_2.11-2.3.2.jar,
file:///usr/local/spark/jars_added/azure-eventhubs-1.0.2.jar,
file:///usr/local/spark/jars_added/proton-j-0.25.0.jar,
file:///usr/local/spark/jars_added/scala-java8-compat_2.11-0.9.0.jar,
file:///usr/local/spark/jars_added/slf4j-api-1.7.25.jar,
file:///usr/local/spark/jars_added/azure-cosmosdb-spark_2.3.0_2.11-1.3.3.jar
或者,您可以将 jar 文件复制到为每个 spark 会话检索 jar 文件的默认位置(请注意,如果您有一个jars
文件夹,$SPARK_HOME
则会覆盖默认位置。如果读者不确定$SPARK_HOME
最有可能等于/usr/local/spark
)。/usr/local/spark/assembly/target/scala-2.11/jars
例如,在我的机器上,默认情况下会检索 jars 。
推荐阅读
- firebase - 为什么在 Kotlin 中迭代 firebase 数据库时元素值添加了两次?
- mysql - MySQL GROUP_CONCAT 与内部 CONCAT 剪切值?无关紧要的结果
- google-sheets - 谷歌表格将单元格组合成标准
- authentication - 两因素身份验证不起作用:SMS 没有联系到我
- java - 在 DialogFlow (api.ai) Android SDK 中增加监听超时
- javascript - 将 JS 文件与 firefox-addon 一起使用时的内容安全策略问题
- angularjs - 如何在提交表单上传递更改数据切换值
- video - 带有表情符号的 FFMPEG drawtext
- scala - 在数据框火花中使用爆炸功能
- mysql - 使用 mysql-workbench 时“在此位置创建无效输入”