Tôi đang cố đọc một tệp Excel với Spark bằng Jupyter trong VSCODE, với phiên bản Java là 1.8.0_311 [Oracle Corporation] và phiên bản Scala của phiên bản 2.12.15.
Đây là mã dưới đây:
# 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"]
Thật không may, nó tạo ra một lỗi
Py4JJavaError: An error occurred while calling o36.load.
: java.lang.ClassNotFoundException:
Failed to find data source: com.crealytics.spark.excel. Please find packages at
//spark.apache.org/third-party-projects.html
Xin chào, Tôi có thể biết Java.LangILLEGALARGUMENTException là gì: tham số "USEHeader" bị thiếu trong các tùy chọn.
May I know what's java.langIllegalArgumentException: Parameter "useHeader" is missing in options.
Để đọc tệp XLSX, mã của tôi theo DF_EXCEL = Spark.Read.Format ["com.crealytics.spark.excel"]. Tùy chọn ["Tiêu đề", "True"]. .
df_excel= spark.read.format["com.crealytics.spark.excel"].option["header", "true"].option["treatEmptyValuesAsNulls", "false"].option["inferSchema", "false"].option["addColorColumns", "false"].load["/FileStore/tables/test.xlsx"]
display[df_excel]
Sử dụng Apache Spark 2.4.5, Scala 2.11 Spark-Excel 2.11: 0.12.5
spark-excel 2.11:0.12.5
Lỗi đầy đủ:
java.lang.LlegalArgumentException: tham số "USEHeader" bị thiếu trong các tùy chọn.
Py4jjavaerror Traceback [Gọi gần đây nhất cuối cùng] 64 Ngoại trừ py4j.protocol.py4jjavaerror là E:
/databricks/spark/python/pyspark/sql/utils.py in deco[*a, **kw]
62 try:
---> 63 return f[*a, **kw]
64 except py4j.protocol.Py4JJavaError as e:
/databricks/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py trong get_return_value [Trả lời, gateway_client, target_id, tên] 327 " }.\N". -> 328 định dạng [target_id, ".", Tên], giá trị] 329 khác:
327 "An error occurred while calling {0}{1}{2}.\n".
--> 328 format[target_id, ".", name], value]
329 else:
PY4JJAVAERROR: Đã xảy ra lỗi trong khi gọi O355.Load. : java.lang.illegalargumentexception: tham số "USEHeader" bị thiếu trong các tùy chọn. tại com.crealytics.spark.excel.defaultsource.checkparameter [mặc định . org.apache.spark.sql.dataframereader.loadv1source [dataFramereader.scala: 311] tại org.apache.spark.sql.dataframereader.load [dataFramereader.scala: 297] DataFramereader.scala: 214] tại sun.reflect.nativemethodaccessorimpl.invoke0 [phương thức gốc] tại sun.reflect.nativemethodaccessorimpl.invoke [nativemethodaccessorimpl.java:62] .lang.reflect.method.invoke [Phương thức.java:498] tại py4j.reflection.methodinvoker.invoke [Phương phápinvoker.java:244] tại py4j.reflection.reflectionEngine.Invoke [RefrectionEngine.java:380] tại py4j.gateway.invoke [gateway.java:295] tại py4j.commands.abstractcommand.invokemethod Thực thi [CallCommand.java:79] tại py4j.gatewayconnection.run [GatewayConnection.java:251] tại java.lang.thread.run [thread.java:748]
: java.lang.IllegalArgumentException: Parameter "useHeader" is missing in options.
at com.crealytics.spark.excel.DefaultSource.checkParameter[DefaultSource.scala:68]
at
com.crealytics.spark.excel.DefaultSource.createRelation[DefaultSource.scala:31]
at com.crealytics.spark.excel.DefaultSource.createRelation[DefaultSource.scala:18]
at com.crealytics.spark.excel.DefaultSource.createRelation[DefaultSource.scala:12]
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation[DataSource.scala:351]
at org.apache.spark.sql.DataFrameReader.loadV1Source[DataFrameReader.scala:311]
at
org.apache.spark.sql.DataFrameReader.load[DataFrameReader.scala:297]
at org.apache.spark.sql.DataFrameReader.load[DataFrameReader.scala:214]
at sun.reflect.NativeMethodAccessorImpl.invoke0[Native Method]
at sun.reflect.NativeMethodAccessorImpl.invoke[NativeMethodAccessorImpl.java:62]
at sun.reflect.DelegatingMethodAccessorImpl.invoke[DelegatingMethodAccessorImpl.java:43]
at java.lang.reflect.Method.invoke[Method.java:498]
at
py4j.reflection.MethodInvoker.invoke[MethodInvoker.java:244]
at py4j.reflection.ReflectionEngine.invoke[ReflectionEngine.java:380]
at py4j.Gateway.invoke[Gateway.java:295]
at py4j.commands.AbstractCommand.invokeMethod[AbstractCommand.java:132]
at py4j.commands.CallCommand.execute[CallCommand.java:79]
at py4j.GatewayConnection.run[GatewayConnection.java:251]
at java.lang.Thread.run[Thread.java:748]
Trong quá trình xử lý ngoại lệ ở trên, một ngoại lệ khác đã xảy ra:
IllectalArgumentException Traceback [cuộc gọi gần đây nhất cuối cùng] trong ----> 1 df_excel = spark.read.format ["com.crealytics.spark.excel"]. , "FALSE"].
in
----> 1 df_excel= spark.read.format["com.crealytics.spark.excel"].option["treatEmptyValuesAsNulls", "false"].option["inferSchema", "false"].option["addColorColumns", "false"].load["/FileStore/tables/test.xlsx"]
2
3 display[df_excel]
/databricks/spark/python/pyspark/sql/readwriter.py in load [self, path, format, schema, ** Tùy chọn] 166 return self._df [self._jreader.load [đường dẫn]] 167 đường dẫn Elif không phải là không: 168 nếu loại [đường dẫn]! = List:
164 self.options[**options]
165 if
isinstance[path, basestring]:
--> 166 return self._df[self._jreader.load[path]]
167 elif path is not None:
168 if type[path] != list:
/databricks/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py trong cuộc gọi [self, *args] 1257 Trả lời, self.gateway_client, self.target_id, self.name] 1258 1259 cho temp_arg trong temp_args:call[self, *args]
1255 answer = self.gateway_client.send_command[command]
1256 return_value = get_return_value[
-> 1257 answer, self.gateway_client, self.target_id, self.name]
1258
1259 for temp_arg in temp_args:
/databricks/spark/python/pyspark/sql/utils.py in Deco [*a, ** kW] 77 RAIN không
77 raise QueryExecutionException[s.split[': ', 1][1], stackTrace]
78 if s.startswith['java.lang.IllegalArgumentException: ']:
---> 79 raise IllegalArgumentException[s.split[': ', 1][1], stackTrace]
80 raise
81 return deco
IllectalArgumentException: 'Tham số "Userheader" bị thiếu trong các tùy chọn.'