8

我正在尝试从 PySpark 中的本地路径读取 .xlsx 文件。

我写了下面的代码:

from pyspark.shell import sqlContext
from pyspark.sql import SparkSession

spark = SparkSession.builder \
      .master('local') \
      .appName('Planning') \
      .enableHiveSupport() \
      .config('spark.executor.memory', '2g') \
      .getOrCreate()

df = sqlContext.read("C:\P_DATA\tyco_93_A.xlsx").show()

错误:

TypeError:“DataFrameReader”对象不可调用

4

2 回答 2

10

您可以使用 pandas 读取 .xlsx 文件,然后将其转换为 spark 数据帧。

from pyspark.sql import SparkSession
import pandas

spark = SparkSession.builder.appName("Test").getOrCreate()

pdf = pandas.read_excel('excelfile.xlsx', sheet_name='sheetname', inferSchema='true')
df = spark.createDataFrame(pdf)

df.show()
于 2020-01-22T10:32:47.267 回答
1

您可以使用 crealytics 包。

需要通过 maven 坐标或在启动 spark shell 时将其添加到 spark 中,如下所示。

$SPARK_HOME/bin/spark-shell --packages com.crealytics:spark-excel_2.12:0.13.1

对于数据块用户 - 需要通过导航集群 - 'clusterName' - 库 - 安装新 - 在 maven 坐标下提供 'com.crealytics:spark-excel_2.12:0.13.1' 将其添加为库。

df = spark.read
     .format("com.crealytics.spark.excel")
     .option("dataAddress", "'Sheet1'!")
     .option("header", "true")
     .option("inferSchema", "true")
     .load("C:\P_DATA\tyco_93_A.xlsx")

下面的 github 页面提供了更多选项。

https://github.com/crealytics/spark-excel

于 2021-07-01T07:29:16.507 回答