-
Couldn't load subscription status.
- Fork 19
Add Google Sheets data source #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Left some comments
|
|
||
| class GoogleSheetsDataSource(DataSource): | ||
| """ | ||
| A DataSource for reading table from public Google Sheets. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be great to also support private ones :)
Note: Description below is partially generated by Copilot.
This pull request introduces a new data source for Google Sheets, adds it to the documentation, and includes tests to ensure its functionality. The most important changes include the creation of the
GoogleSheetsDataSourceclass, updates to the documentation, and the addition of new tests.New Data Source Implementation:
pyspark_datasources/googlesheets.py: Implemented theGoogleSheetsDataSourceclass to read tables from public Google Sheets documents. See docstring for more detail.pyspark_datasources/__init__.py: Added the import statement for the newGoogleSheetsDataSourceclass.Documentation Updates:
docs/datasources/googlesheets.md: Created a new documentation file for theGoogleSheetsDataSource.docs/index.md: Updated the data source table to include the newGoogleSheetsDataSource.mkdocs.yml: Added the new documentation file to the navigation.Testing:
tests/test_google_sheets.py: Added tests for theGoogleSheetsDataSourceto verify its functionality, including tests for URL handling, spreadsheet ID handling, missing options, mutual exclusive options, and custom schema.