EMR 5.21,Spark 2.4 - Json4s依赖性被破坏

问题描述 投票:0回答:1

Issue

在EMR 5.21中,Spark-Hbase集成被破坏。 df.write.options()。format()。save()失败。 原因是json4s-jackson版本3.5.3 in spark 2.4,EMR 5.21 它在EMR 5.11.2,Spark 2.2,son4s-jackson版本3.2.11中工作正常 问题是这是EMR所以我不能用较低的json4s重建火花。 有没有解决方法?

Error

py4j.protocol.Py4JJavaError:调用o104.save时发生错误。 :java.lang.NoSuchMethodError:org.json4s.jackson.JsonMethods $ .parse(Lorg / json4s / JsonInput; Z)Lorg / json4s / JsonAST $ JValue;

Submission

spark-submit --master yarn \
--jars /usr/lib/hbase/  \
--packages com.hortonworks:shc-core:1.1.3-2.3-s_2.11 \
--repositories http://repo.hortonworks.com/content/groups/public/  \
pysparkhbase_V1.1.py s3://<bucket>/ <Namespace> <Table> <cf> <Key>

Code

import sys
from pyspark.sql.functions import concat
from pyspark import SparkContext
from pyspark.sql import SQLContext,SparkSession
spark = SparkSession.builder.master("yarn").appName("PysparkHbaseConnection").config("spark.some.config.option", "PyHbase").getOrCreate()
spark.sql("set spark.sql.parquet.compression.codec=uncompressed")
spark.conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
data_source_format = 'org.apache.spark.sql.execution.datasources.hbase'
df = spark.read.parquet(file)
df.createOrReplaceTempView("view")
.
cat = '{|"table":{"namespace":"' + namespace + '", "name":"' + name + '", "tableCoder":"' + tableCoder + '", "version":"' + version + '"}, \n|"rowkey":"' + rowkey + '", \n|"columns":{'
.
df.write.options(catalog=cat).format(data_source_format).save()
amazon-web-services apache-spark amazon-emr json4s
1个回答
0
投票

没有明显的答案。快速检查the SHC POM并不会直接导入json文件,所以你不能只改变那个pom并自己构建工件。

您将不得不与EMR团队交谈,以使他们同步构建连接器和HBase。

FWIW,让jackson同步是发布大数据堆栈的重点之一,而AWS SDK更新他们每两周要求的习惯释放一个压力点...... Hadoop纯粹停止了移动到aws阴影SDK AWS工程决策为每个人定义选择。

© www.soinside.com 2019 - 2024. All rights reserved.