读取pyspark中以第三行作为标题的excel文件

读取pyspark中以第三行作为标题的excel文件,excel,pyspark,azure-databricks,Excel,Pyspark,Azure Databricks,我想将excel文件读取为spark dataframe,第3行作为标题。将excel文件读取为spark dataframe,第1行作为标题的语法是: s_df = spark.read.format("com.crealytics.spark.excel") \ .option("header", "true") \ .op

我想将excel文件读取为spark dataframe,第3行作为标题。将excel文件读取为spark dataframe,第1行作为标题的语法是:

s_df  = spark.read.format("com.crealytics.spark.excel") \
                           .option("header", "true") \
                           .option("inferSchema", "true") \
                           .load(path + 'Sales.xlsx')
p_df = pd.read_excel(path + 'Sales.xlsx',header=3)
将第3行作为标题读取为pandas dataframe的等效语法为:

s_df  = spark.read.format("com.crealytics.spark.excel") \
                           .option("header", "true") \
                           .option("inferSchema", "true") \
                           .load(path + 'Sales.xlsx')
p_df = pd.read_excel(path + 'Sales.xlsx',header=3)

我想在pyspark中执行相同的操作,即将excel文件作为spark dataframe读取,第3行作为标题。

使用dataAddress选项指定数据所在的单元格/行。由于需要跳过两行,所以数据(包括标题)从第A3行开始

s_df = spark.read.format("com.crealytics.spark.excel") \
           .option("header", "true") \
           .option("inferSchema","true") \
           .option("dataAddress", "'Sheet1'!A3") \
           .load("yourfilepath")
另外,请注意,如果前两行为空,则不必指定dataAddress。默认情况下,将跳过前导的空行


检查文档

您能用pandas阅读并转换为spark数据帧吗?Excel文件通常不大,pandas应该能够处理,我可以这样做,但是有没有办法将文件直接读取为spark dataframe?