在Spark 2.1 文档中提到了这一点
Spark运行在Java 7 +,Python 2.6 +/3.4 +和R 3.1+上.对于Scala API,Spark 2.1.0使用Scala 2.11.您需要使用兼容的Scala版本(2.11.x).
在Scala 2.12 发布消息时,它还提到:
尽管Scala 2.11和2.12主要是源兼容的,以便于交叉构建,但它们不是二进制兼容的.这使我们能够不断改进Scala编译器和标准库.
但是当我构建一个超级jar(使用Scala 2.12)并在Spark 2.1上运行它时.一切都很好.
我知道它不是任何官方消息来源,但在47度博客中他们提到Spark 2.1确实支持Scala 2.12.
如何解释那些(冲突?)信息?
我需要在EMR中设置一个自定义环境变量,以便在运行spark应用程序时可用.
我试过添加这个:
...
--configurations '[
{
"Classification": "spark-env",
"Configurations": [
{
"Classification": "export",
"Configurations": [],
"Properties": { "SOME-ENV-VAR": "qa1" }
}
],
"Properties": {}
}
]'
...
Run Code Online (Sandbox Code Playgroud)
并试图取代"spark-env hadoop-env
但似乎没有任何效果.
aws论坛有这个答案.但我无法弄清楚如何应用它.我正在运行EMR 5.3.1并使用cli中预先配置的步骤启动它:aws emr create-cluster...
hadoop environment-variables amazon-web-services emr apache-spark
Intellij错误地标记了一些Scala implicits导入为不使用.有没有办法阻止它在为特定导入明确优化它们时删除那些导入,而不是阻止整个项目的优化导入?
有没有一种方法可以根据基于Avro模式的实木复合地板文件直接在Amazon Athena中创建表?该模式已编码到文件中,因此它看起来很愚蠢,我需要亲自创建DDL。
但它们与Hive直接相关,对Athena无效。理想情况下,我正在寻找一种无需您在控制台上进行定义即可以编程方式进行操作的方法。
我正在尝试运行一个用scala 11.8编写的spark应用程序,在EMR集群版本5.3.0上使用spark 2.1.我使用以下json配置了集群:
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Configurations": [],
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
},
{
"Classification": "spark-env",
"Configurations": [
{
"Classification": "export",
"Configurations": [],
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
Run Code Online (Sandbox Code Playgroud)
如果我试图在客户端模式下运行一切运行正常.尝试使用群集模式运行应用程序时,它失败,状态码为12.
这是主日志的一部分,我在其中看到状态代码:
17/02/01 10:08:26 INFO TaskSetManager:完成任务79.0,阶段0.0(TID 79),在293毫秒,在ip-10-234-174-231.us-west-2.compute.internal(executor 2) (78/11102)17/02/01 10:08:27 INFO YarnAllocator:司机要求总共19290名遗嘱执行人.17/02/01 10:08:27 INFO ApplicationMaster:最终应用程序状态:FAILED,exitCode:12,(原因:从Reporter线程中抛出了1次异常.)17/02/01 10:08:27 INFO SparkContext:从shutdown hook调用stop()
更新:
作为工作的一部分,我需要从s3中读取一些数据,如下所示:
sc.textFile( "s3n://stambucket/impressions/*/2017-01-0[1-9]/*/impression_recdate*)
如果我只花一天时间,则没有错误.但是9我得到了这12个退出代码.甚至更奇怪的是考虑到在客户端模式下运行9天的事实就好了.
apache-spark ×3
scala ×3
emr ×2
abi ×1
hadoop ×1
hadoop-yarn ×1
hive ×1
import ×1
java ×1
presto ×1