使用 Crealytics 包读取 Excel 文件时出错
Error while using Crealytics package to read Excel file
我正在尝试使用 Crealytics 包从 HDFS 位置读取 Excel 文件,但不断收到错误消息(原因:java.lang.ClassNotFoundException:org.apache.spark.sql.connector.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_2.12:0.13.0”),尽管最新版本是版本 15.
我正在尝试使用 Crealytics 包从 HDFS 位置读取 Excel 文件,但不断收到错误消息(原因:java.lang.ClassNotFoundException:org.apache.spark.sql.connector.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_2.12:0.13.0”),尽管最新版本是版本 15.