Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-19-2022 04:56 AM
For this dataset, I also tried binary file reading as below:
xldf_xlsx = (
spark.read.format("binaryFile")
.option("pathGlobFilter", "*.xls*")
.load(filepath_xlsx)
)
excel_content = xldf_xlsx.head(1)[0].content
file_like_obj = io.BytesIO(excel_content)
xl = pd.ExcelFile(file_like_obj, engine="openpyxl")And the last line gives the error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<command-496434324351842> in <cell line: 3>()
1 excel_content = xldf_xlsx.head(1)[0].content
2 file_like_obj = io.BytesIO(excel_content)
----> 3 xl = pd.ExcelFile(file_like_obj, engine="openpyxl")
/databricks/python/lib/python3.9/site-packages/pandas/io/excel/_base.py in __init__(self, path_or_buffer, engine, storage_options)
1231 self.storage_options = storage_options
1232
-> 1233 self._reader = self._engines[engine](self._io, storage_options=storage_options)
1234
1235 def __fspath__(self):
/databricks/python/lib/python3.9/site-packages/pandas/io/excel/_openpyxl.py in __init__(self, filepath_or_buffer, storage_options)
520 """
521 import_optional_dependency("openpyxl")
--> 522 super().__init__(filepath_or_buffer, storage_options=storage_options)
523
524 @property
/databricks/python/lib/python3.9/site-packages/pandas/io/excel/_base.py in __init__(self, filepath_or_buffer, storage_options)
418 self.handles.handle.seek(0)
419 try:
--> 420 self.book = self.load_workbook(self.handles.handle)
421 except Exception:
422 self.close()
/databricks/python/lib/python3.9/site-packages/pandas/io/excel/_openpyxl.py in load_workbook(self, filepath_or_buffer)
531 from openpyxl import load_workbook
532
--> 533 return load_workbook(
534 filepath_or_buffer, read_only=True, data_only=True, keep_links=False
535 )
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/reader/excel.py in load_workbook(filename, read_only, keep_vba, data_only, keep_links)
315 reader = ExcelReader(filename, read_only, keep_vba,
316 data_only, keep_links)
--> 317 reader.read()
318 return reader.wb
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/reader/excel.py in read(self)
276 self.read_manifest()
277 self.read_strings()
--> 278 self.read_workbook()
279 self.read_properties()
280 self.read_theme()
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/reader/excel.py in read_workbook(self)
148 wb_part = _find_workbook_part(self.package)
149 self.parser = WorkbookParser(self.archive, wb_part.PartName[1:], keep_links=self.keep_links)
--> 150 self.parser.parse()
151 wb = self.parser.wb
152 wb._sheets = []
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/reader/workbook.py in parse(self)
47 src = self.archive.read(self.workbook_part_name)
48 node = fromstring(src)
---> 49 package = WorkbookPackage.from_tree(node)
50 if package.properties.date1904:
51 self.wb.epoch = CALENDAR_MAC_1904
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/descriptors/serialisable.py in from_tree(cls, node)
81 if hasattr(desc, 'from_tree'):
82 #descriptor manages conversion
---> 83 obj = desc.from_tree(el)
84 else:
85 if hasattr(desc.expected_type, "from_tree"):
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py in from_tree(self, node)
83
84 def from_tree(self, node):
---> 85 return [self.expected_type.from_tree(el) for el in node]
86
87
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py in <listcomp>(.0)
83
84 def from_tree(self, node):
---> 85 return [self.expected_type.from_tree(el) for el in node]
86
87
/local_disk0/.ephemeral_nfs/cluster_libraries/python/lib/python3.9/site-packages/openpyxl/descriptors/serialisable.py in from_tree(cls, node)
101 attrib[tag] = obj
102
--> 103 return cls(**attrib)
104
105
TypeError: __init__() missing 1 required positional argument: 'id'