Выпуск
В EMR 5.21 интеграция Spark - Hbase не работает.
df.write.options (). Format (). Save () завершается ошибкой.
Причина - версия json4s-jackson3.5.3 в spark 2.4, EMR 5.21
он отлично работает в EMR 5.11.2, Spark 2.2, son4s-jackson версия 3.2.11
Проблема в том, что это EMR, поэтому я не могу восстановить искру с более низким json4s.
есть ли обходной путь?
Ошибка
py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o104.save.: java.lang.NoSuchMethodError: org.json4s.jackson.JsonMethods $ .parse (Lorg / json4s / JsonInput; Z) Lorg / json4s / JsonAST $ JValue;
Представление
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>
1016Код
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()