使用Crealytics包读取Excel文件时出错



我正试图使用Crealytics包从HDFS位置读取Excel文件,但一直收到错误(由:java.lang.ClassNotFoundException:org.apache.spark.sql.connecter.catalog.TableProvider引起(。我的代码如下。有什么建议吗?运行以下代码时,spark会话启动良好,Crealytics包加载无错误。只有当运行";spark.read";密码我使用的文件位置是准确的。

def spark_session(spark_conf):
conf = SparkConf()
for (key, val) in spark_conf.items():
conf.set(key, val)
spark = SparkSession 
.builder 
.enableHiveSupport() 
.config(conf=conf) 
.getOrCreate()
return spark
spark_conf = {"spark.executor.memory": "16g", 
"spark.yarn.executor.memoryOverhead": "3g",
"spark.dynamicAllocation.initialExecutors": 2,
"spark.driver.memory": "16g", 
"spark.kryoserializer.buffer.max": "1g",
"spark.driver.cores": 32,
"spark.executor.cores": 8,
"spark.yarn.queue": "adhoc",
"spark.app.name": "CDSW_basic",
"spark.dynamicAllocation.maxExecutors": 32,
"spark.jars.packages": "com.crealytics:spark-excel_2.12:0.14.0"
}

df = spark.read.format("com.crealytics.spark.excel") 
.option("useHeader", "true") 
.load("/user/data/Block_list.xlsx")

我还尝试在会话函数之外加载它,下面的代码在我尝试读取文件时会产生相同的错误。

crealytics_driver_loc = "com.crealytics:spark-excel_2.12:0.14.0"
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages ' + crealytics_driver_loc + ' pyspark-shell'

看起来我在回答自己的问题。经过大量的摆弄,我发现使用旧版本的crealytics可以使用我的设置,尽管我不确定为什么。有效的软件包是版本13("com.crealytics:spark-excel.12:0.13.0"(,尽管最新的是版本15。

最新更新