我正在嘗試在 vscode 中使用 jupyter 讀取帶有 spark 的 excel 檔案,Java 版本為 1.8.0_311(Oracle Corporation),Scala 版本為 2.12.15。
這是下面的代碼:
# import necessary library
import pandas as pd
from pyspark.sql.types import StructType
# entry point for spark's functionality
from pyspark import SparkContext, SparkConf, SQLContext
configure = SparkConf().setAppName("name").setMaster("local")
sc = SparkContext(conf= configure)
sql = SQLContext(sc)
# entry point for spark's dataframes
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.master("local") \
.appName("pharmacy scraper") \
.config("spark.jars.packages", "com.crealytics:spark-excel_2.11:0.12.2") \
.getOrCreate()
# reading excel file
df_generika = spark.read.format("com.crealytics.spark.excel").option("useHeader", "true").option("inferSchema", "true").option("dataAddress", "Sheet1").load("./../data/raw-data/generika.xlsx")
不幸的是,它產生了一個錯誤
Py4JJavaError: An error occurred while calling o36.load.
: java.lang.ClassNotFoundException:
Failed to find data source: com.crealytics.spark.excel. Please find packages at
http://spark.apache.org/third-party-projects.html
uj5u.com熱心網友回復:
檢查您的類路徑:您必須在其中包含包含 com.crealytics.spark.excel 的 Jar。
使用 Spark,其架構與傳統應用程式略有不同。您可能需要將 Jar 放在不同的位置:在您的應用程式中,在主級別和/或作業級別。攝取(你在做什么)是由作業人員完成的,所以確保他們在他們的類路徑中有這個 Jar。
uj5u.com熱心網友回復:
也許你根本不應該SparkContext單獨初始化你的。只需創建一個SparkSession配置設定,一切都會好起來的。
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.master("local") \
.appName("pharmacy scraper") \
.config("spark.jars.packages", "com.crealytics:spark-excel_2.11:0.12.2") \
.getOrCreate()
:
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/392973.html
