sqlframe 3.20.0__tar.gz → 3.21.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {sqlframe-3.20.0 → sqlframe-3.21.0}/PKG-INFO +1 -1
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/bigquery.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/duckdb.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/postgres.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/snowflake.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/spark.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/standalone.md +1 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/_version.py +2 -2
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/dataframe.py +108 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe.egg-info/PKG-INFO +1 -1
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/test_int_dataframe.py +48 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.github/CODEOWNERS +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.github/workflows/main.workflow.yaml +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.github/workflows/publish.workflow.yaml +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.gitignore +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.pre-commit-config.yaml +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/.readthedocs.yaml +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/LICENSE +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/Makefile +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/README.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/add_chatgpt_support.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/adding_ai_to_meal.jpeg +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/hype_train.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/nonsense_sql.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/but_wait_theres_more.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/cake.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/you_get_pyspark_api.gif +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/sqlframe_universal_dataframe_api.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/configuration.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/databricks.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/bigquery.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/duckdb.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/images/SF.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/images/favicon.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/images/favicon_old.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/docs/postgres.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/images/SF.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/images/favicon.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/images/favicon_old.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/images/sqlframe_diagram.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/images/sqlframe_logo.png +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/index.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/redshift.md +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/requirements.txt +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/docs/stylesheets/extra.css +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/mkdocs.yml +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/pytest.ini +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/renovate.json +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/setup.cfg +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/setup.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/LICENSE +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/_typing.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/decorators.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/exceptions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/function_alternatives.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/mixins/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/mixins/catalog_mixins.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/mixins/dataframe_mixins.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/mixins/readwriter_mixins.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/mixins/table_mixins.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/normalize.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/operations.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/readerwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/transforms.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/util.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/base/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/bigquery/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/databricks/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/duckdb/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/postgres/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/redshift/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/snowflake/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/functions.pyi +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/spark/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/group.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/readwriter.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/standalone/window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/testing/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe/testing/utils.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe.egg-info/SOURCES.txt +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe.egg-info/dependency_links.txt +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe.egg-info/requires.txt +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/sqlframe.egg-info/top_level.txt +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/common_fixtures.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/conftest.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee.csv +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee.json +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/.part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/_delta_log/.00000000000000000000.json.crc +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/_delta_log/00000000000000000000.json +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00000-e5965c7b-e58f-4d3c-ad56-002876814e3a-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00002-3fed7f18-370f-4b16-b232-504d6194eb52-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00004-143c5da1-d5ab-4706-8e84-0d2a324c6894-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00006-64f07e25-c30e-4075-acc6-b3c69c4ce80b-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00008-89ccad8d-df73-4ad5-8850-82ef3884db60-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_delta/part-00010-812b3382-8c7f-4c4e-9bcd-09ce8664f6e0-c000.snappy.parquet +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/employee_extra_line.csv +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/issue_219.csv +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds1.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds10.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds11.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds12.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds13.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds14.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds15.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds16.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds17.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds18.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds19.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds2.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds20.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds21.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds22.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds23.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds24.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds25.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds26.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds27.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds28.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds29.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds3.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds30.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds31.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds32.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds33.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds34.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds35.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds36.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds37.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds38.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds39.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds4.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds40.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds41.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds42.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds43.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds44.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds45.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds46.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds47.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds48.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds49.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds5.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds50.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds51.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds52.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds53.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds54.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds55.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds56.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds57.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds58.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds59.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds6.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds60.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds61.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds62.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds63.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds64.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds65.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds66.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds67.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds68.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds69.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds7.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds70.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds71.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds72.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds73.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds74.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds75.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds76.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds77.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds78.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds79.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds8.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds80.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds81.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds82.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds83.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds84.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds85.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds86.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds87.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds88.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds89.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds9.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds90.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds91.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds92.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds93.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds94.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds95.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds96.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds97.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds98.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/fixtures/tpcds/tpcds99.sql +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/bigquery/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/bigquery/test_bigquery_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/bigquery/test_bigquery_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/bigquery/test_bigquery_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/databricks/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/databricks/test_databricks_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/databricks/test_databricks_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/databricks/test_databricks_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_reader.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_duckdb_udf.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/duck/test_tpcds.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/postgres/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/postgres/test_postgres_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/postgres/test_postgres_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/postgres/test_postgres_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/postgres/test_postgres_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/redshift/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/redshift/test_redshift_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/redshift/test_redshift_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/snowflake/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/snowflake/test_snowflake_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/snowflake/test_snowflake_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/snowflake/test_snowflake_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/spark/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/spark/test_spark_catalog.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/spark/test_spark_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_reader.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_table.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_engine_writer.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_int_functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/engines/test_int_testing.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/fixtures.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/test_int_dataframe_stats.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/test_int_grouped_data.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/integration/test_int_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/bigquery/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/bigquery/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/conftest.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/databricks/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/databricks/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/duck/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/duck/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/postgres/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/postgres/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/redshift/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/redshift/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/snowflake/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/snowflake/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/spark/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/spark/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/__init__.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/fixtures.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_column.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_dataframe.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_dataframe_writer.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_functions.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_session.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_session_case_sensitivity.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_types.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/standalone/test_window.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/test_activate.py +0 -0
- {sqlframe-3.20.0 → sqlframe-3.21.0}/tests/unit/test_util.py +0 -0
@@ -289,6 +289,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
289
289
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
290
290
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
291
291
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
292
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
292
293
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
293
294
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
294
295
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -255,6 +255,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
255
255
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
256
256
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
257
257
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
258
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
258
259
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
259
260
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
260
261
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -269,6 +269,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
269
269
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
270
270
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
271
271
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
272
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
272
273
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
273
274
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
274
275
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -285,6 +285,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
285
285
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
286
286
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
287
287
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
288
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
288
289
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
289
290
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
290
291
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -174,6 +174,7 @@ df.show(5)
|
|
174
174
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
175
175
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
176
176
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
177
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
177
178
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
178
179
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
179
180
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -181,6 +181,7 @@ See something that you would like to see supported? [Open an issue](https://gith
|
|
181
181
|
* [union](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.union.html)
|
182
182
|
* [unionAll](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionAll.html)
|
183
183
|
* [unionByName](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unionByName.html)
|
184
|
+
* [unpivot](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.unpivot.html)
|
184
185
|
* [where](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.where.html)
|
185
186
|
* [withColumn](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumn.html)
|
186
187
|
* [withColumnRenamed](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.withColumnRenamed.html)
|
@@ -1718,6 +1718,114 @@ class BaseDataFrame(t.Generic[SESSION, WRITER, NA, STAT, GROUP_DATA]):
|
|
1718
1718
|
grouping_columns.extend([list(x) for x in itertools.combinations(columns, i)])
|
1719
1719
|
return self._group_data(self, grouping_columns, self.last_op)
|
1720
1720
|
|
1721
|
+
@operation(Operation.SELECT)
|
1722
|
+
def unpivot(
|
1723
|
+
self,
|
1724
|
+
ids: t.Union[ColumnOrName, t.List[ColumnOrName], t.Tuple[ColumnOrName, ...]],
|
1725
|
+
values: t.Optional[t.Union[ColumnOrName, t.List[ColumnOrName], t.Tuple[ColumnOrName, ...]]],
|
1726
|
+
variableColumnName: str,
|
1727
|
+
valueColumnName: str,
|
1728
|
+
) -> Self:
|
1729
|
+
"""
|
1730
|
+
Unpivot a DataFrame from wide format to long format, optionally leaving
|
1731
|
+
identifier columns set. This is the reverse to `groupBy(...).pivot(...).agg(...)`,
|
1732
|
+
except for the aggregation, which cannot be reversed.
|
1733
|
+
|
1734
|
+
This function is useful to massage a DataFrame into a format where some
|
1735
|
+
columns are identifier columns ("ids"), while all other columns ("values")
|
1736
|
+
are "unpivoted" to the rows, leaving just two non-id columns, named as given
|
1737
|
+
by `variableColumnName` and `valueColumnName`.
|
1738
|
+
|
1739
|
+
When no "id" columns are given, the unpivoted DataFrame consists of only the
|
1740
|
+
"variable" and "value" columns.
|
1741
|
+
|
1742
|
+
The `values` columns must not be empty so at least one value must be given to be unpivoted.
|
1743
|
+
When `values` is `None`, all non-id columns will be unpivoted.
|
1744
|
+
|
1745
|
+
All "value" columns must share a least common data type. Unless they are the same data type,
|
1746
|
+
all "value" columns are cast to the nearest common data type. For instance, types
|
1747
|
+
`IntegerType` and `LongType` are cast to `LongType`, while `IntegerType` and `StringType`
|
1748
|
+
do not have a common data type and `unpivot` fails.
|
1749
|
+
|
1750
|
+
.. versionadded:: 3.4.0
|
1751
|
+
|
1752
|
+
Parameters
|
1753
|
+
----------
|
1754
|
+
ids : str, Column, tuple, list
|
1755
|
+
Column(s) to use as identifiers. Can be a single column or column name,
|
1756
|
+
or a list or tuple for multiple columns.
|
1757
|
+
values : str, Column, tuple, list, optional
|
1758
|
+
Column(s) to unpivot. Can be a single column or column name, or a list or tuple
|
1759
|
+
for multiple columns. If specified, must not be empty. If not specified, uses all
|
1760
|
+
columns that are not set as `ids`.
|
1761
|
+
variableColumnName : str
|
1762
|
+
Name of the variable column.
|
1763
|
+
valueColumnName : str
|
1764
|
+
Name of the value column.
|
1765
|
+
|
1766
|
+
Returns
|
1767
|
+
-------
|
1768
|
+
:class:`DataFrame`
|
1769
|
+
Unpivoted DataFrame.
|
1770
|
+
|
1771
|
+
Notes
|
1772
|
+
-----
|
1773
|
+
Supports Spark Connect.
|
1774
|
+
|
1775
|
+
Examples
|
1776
|
+
--------
|
1777
|
+
>>> df = spark.createDataFrame(
|
1778
|
+
... [(1, 11, 1.1), (2, 12, 1.2)],
|
1779
|
+
... ["id", "int", "double"],
|
1780
|
+
... )
|
1781
|
+
>>> df.show()
|
1782
|
+
+---+---+------+
|
1783
|
+
| id|int|double|
|
1784
|
+
+---+---+------+
|
1785
|
+
| 1| 11| 1.1|
|
1786
|
+
| 2| 12| 1.2|
|
1787
|
+
+---+---+------+
|
1788
|
+
|
1789
|
+
>>> df.unpivot("id", ["int", "double"], "var", "val").show()
|
1790
|
+
+---+------+----+
|
1791
|
+
| id| var| val|
|
1792
|
+
+---+------+----+
|
1793
|
+
| 1| int|11.0|
|
1794
|
+
| 1|double| 1.1|
|
1795
|
+
| 2| int|12.0|
|
1796
|
+
| 2|double| 1.2|
|
1797
|
+
+---+------+----+
|
1798
|
+
|
1799
|
+
See Also
|
1800
|
+
--------
|
1801
|
+
DataFrame.melt
|
1802
|
+
"""
|
1803
|
+
from sqlframe.base import functions as F
|
1804
|
+
|
1805
|
+
id_columns = self._ensure_and_normalize_cols(ids)
|
1806
|
+
if not values:
|
1807
|
+
outer_selects = self._get_outer_select_columns(self.expression)
|
1808
|
+
values = [
|
1809
|
+
column
|
1810
|
+
for column in outer_selects
|
1811
|
+
if column.alias_or_name not in {x.alias_or_name for x in id_columns}
|
1812
|
+
]
|
1813
|
+
value_columns = self._ensure_and_normalize_cols(values)
|
1814
|
+
|
1815
|
+
df = self._convert_leaf_to_cte()
|
1816
|
+
selects = []
|
1817
|
+
for value in value_columns:
|
1818
|
+
selects.append(
|
1819
|
+
exp.select(
|
1820
|
+
*[x.column_expression for x in id_columns],
|
1821
|
+
F.lit(value.alias_or_name).alias(variableColumnName).expression,
|
1822
|
+
value.alias(valueColumnName).expression,
|
1823
|
+
).from_(df.expression.ctes[-1].alias_or_name)
|
1824
|
+
)
|
1825
|
+
unioned_expression = functools.reduce(lambda x, y: x.union(y, distinct=False), selects) # type: ignore
|
1826
|
+
final_expression = self._add_ctes_to_expression(unioned_expression, df.expression.ctes)
|
1827
|
+
return self.copy(expression=final_expression)._convert_leaf_to_cte()
|
1828
|
+
|
1721
1829
|
def collect(self) -> t.List[Row]:
|
1722
1830
|
return self._collect()
|
1723
1831
|
|
@@ -2164,6 +2164,54 @@ def test_transform(
|
|
2164
2164
|
compare_frames(df, dfs)
|
2165
2165
|
|
2166
2166
|
|
2167
|
+
def test_unpivot(
|
2168
|
+
pyspark_employee: PySparkDataFrame,
|
2169
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
2170
|
+
compare_frames: t.Callable,
|
2171
|
+
):
|
2172
|
+
employee = get_df("employee")
|
2173
|
+
df = pyspark_employee.unpivot(
|
2174
|
+
pyspark_employee.columns, # type: ignore
|
2175
|
+
["fname", "lname"],
|
2176
|
+
"attribute",
|
2177
|
+
"value",
|
2178
|
+
)
|
2179
|
+
dfs = employee.unpivot(employee.columns, ["fname", "lname"], "attribute", "value")
|
2180
|
+
compare_frames(df, dfs, sort=True)
|
2181
|
+
|
2182
|
+
|
2183
|
+
def test_unpivot_no_values(
|
2184
|
+
pyspark_employee: PySparkDataFrame,
|
2185
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
2186
|
+
compare_frames: t.Callable,
|
2187
|
+
):
|
2188
|
+
employee = get_df("employee")
|
2189
|
+
df = pyspark_employee.unpivot(["employee_id", "fname", "lname"], None, "attribute", "value")
|
2190
|
+
dfs = employee.unpivot(["employee_id", "fname", "lname"], None, "attribute", "value")
|
2191
|
+
compare_frames(df, dfs, sort=True)
|
2192
|
+
|
2193
|
+
|
2194
|
+
def test_unpivot_doc_example(
|
2195
|
+
pyspark_employee: PySparkDataFrame,
|
2196
|
+
get_df: t.Callable[[str], BaseDataFrame],
|
2197
|
+
compare_frames: t.Callable,
|
2198
|
+
):
|
2199
|
+
df = pyspark_employee._session.createDataFrame(
|
2200
|
+
[(1, 11, 1.1), (2, 12, 1.2)],
|
2201
|
+
["id", "int", "double"],
|
2202
|
+
).unpivot("id", ["int", "double"], "var", "val")
|
2203
|
+
|
2204
|
+
dfs = (
|
2205
|
+
get_df("employee")
|
2206
|
+
.session.createDataFrame(
|
2207
|
+
[(1, 11, 1.1), (2, 12, 1.2)],
|
2208
|
+
["id", "int", "double"],
|
2209
|
+
)
|
2210
|
+
.unpivot("id", ["int", "double"], "var", "val")
|
2211
|
+
)
|
2212
|
+
compare_frames(df, dfs, sort=True, compare_schema=False)
|
2213
|
+
|
2214
|
+
|
2167
2215
|
# https://github.com/eakmanrq/sqlframe/issues/51
|
2168
2216
|
def test_join_full_outer_no_match(
|
2169
2217
|
pyspark_employee: PySparkDataFrame,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/marvin_paranoid_robot.gif
RENAMED
File without changes
|
File without changes
|
{sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/openai_full_rewrite.png
RENAMED
File without changes
|
{sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/openai_replacing_cte_names.png
RENAMED
File without changes
|
{sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/sqlglot_optimized_code.png
RENAMED
File without changes
|
{sqlframe-3.20.0 → sqlframe-3.21.0}/blogs/images/add_chatgpt_support/sunny_shake_head_no.gif
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|