snowpark-connect 0.24.0__py3-none-any.whl → 0.25.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of snowpark-connect might be problematic. Click here for more details.
- snowflake/snowpark_connect/column_name_handler.py +116 -4
- snowflake/snowpark_connect/config.py +13 -0
- snowflake/snowpark_connect/constants.py +0 -29
- snowflake/snowpark_connect/dataframe_container.py +6 -0
- snowflake/snowpark_connect/execute_plan/map_execution_command.py +56 -1
- snowflake/snowpark_connect/expression/literal.py +13 -2
- snowflake/snowpark_connect/expression/map_cast.py +5 -8
- snowflake/snowpark_connect/expression/map_sql_expression.py +23 -1
- snowflake/snowpark_connect/expression/map_udf.py +26 -8
- snowflake/snowpark_connect/expression/map_unresolved_attribute.py +199 -15
- snowflake/snowpark_connect/expression/map_unresolved_extract_value.py +44 -16
- snowflake/snowpark_connect/expression/map_unresolved_function.py +825 -353
- snowflake/snowpark_connect/expression/map_unresolved_star.py +3 -2
- snowflake/snowpark_connect/hidden_column.py +39 -0
- snowflake/snowpark_connect/includes/jars/hadoop-client-api-trimmed-3.3.4.jar +0 -0
- snowflake/snowpark_connect/includes/jars/{hadoop-client-api-3.3.4.jar → spark-connect-client-jvm_2.12-3.5.6.jar} +0 -0
- snowflake/snowpark_connect/relation/map_column_ops.py +17 -4
- snowflake/snowpark_connect/relation/map_extension.py +52 -11
- snowflake/snowpark_connect/relation/map_join.py +258 -62
- snowflake/snowpark_connect/relation/map_sql.py +88 -11
- snowflake/snowpark_connect/relation/map_udtf.py +4 -2
- snowflake/snowpark_connect/relation/read/map_read.py +3 -3
- snowflake/snowpark_connect/relation/read/map_read_jdbc.py +1 -1
- snowflake/snowpark_connect/relation/read/map_read_json.py +8 -1
- snowflake/snowpark_connect/relation/read/map_read_table.py +1 -9
- snowflake/snowpark_connect/relation/read/reader_config.py +3 -1
- snowflake/snowpark_connect/relation/write/map_write.py +62 -53
- snowflake/snowpark_connect/resources_initializer.py +29 -1
- snowflake/snowpark_connect/server.py +18 -3
- snowflake/snowpark_connect/type_mapping.py +29 -25
- snowflake/snowpark_connect/typed_column.py +14 -0
- snowflake/snowpark_connect/utils/artifacts.py +23 -0
- snowflake/snowpark_connect/utils/context.py +6 -1
- snowflake/snowpark_connect/utils/scala_udf_utils.py +588 -0
- snowflake/snowpark_connect/utils/telemetry.py +6 -17
- snowflake/snowpark_connect/utils/udf_helper.py +2 -0
- snowflake/snowpark_connect/utils/udf_utils.py +38 -7
- snowflake/snowpark_connect/utils/udtf_utils.py +17 -3
- snowflake/snowpark_connect/version.py +1 -1
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/METADATA +1 -1
- snowpark_connect-0.25.0.dist-info/RECORD +477 -0
- snowflake/snowpark_connect/includes/jars/scala-compiler-2.12.18.jar +0 -0
- snowflake/snowpark_connect/includes/jars/spark-kubernetes_2.12-3.5.6.jar +0 -0
- snowflake/snowpark_connect/includes/jars/spark-mllib_2.12-3.5.6.jar +0 -0
- snowflake/snowpark_connect/includes/jars/spark-streaming_2.12-3.5.6.jar +0 -0
- snowflake/snowpark_connect/includes/python/pyspark/errors/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/errors/tests/test_errors.py +0 -60
- snowflake/snowpark_connect/includes/python/pyspark/ml/deepspeed/tests/test_deepspeed_distributor.py +0 -306
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_classification.py +0 -53
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_evaluation.py +0 -50
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_feature.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_function.py +0 -114
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_pipeline.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_summarizer.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_connect_tuning.py +0 -46
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_classification.py +0 -238
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_evaluation.py +0 -194
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_feature.py +0 -156
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_pipeline.py +0 -184
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_summarizer.py +0 -78
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_legacy_mode_tuning.py +0 -292
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_parity_torch_data_loader.py +0 -50
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/connect/test_parity_torch_distributor.py +0 -152
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_algorithms.py +0 -456
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_base.py +0 -96
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_dl_util.py +0 -186
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_evaluation.py +0 -77
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_feature.py +0 -401
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_functions.py +0 -528
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_image.py +0 -82
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_linalg.py +0 -409
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_model_cache.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_param.py +0 -441
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_persistence.py +0 -546
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_pipeline.py +0 -71
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_stat.py +0 -52
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_training_summary.py +0 -494
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_util.py +0 -85
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/test_wrapper.py +0 -138
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_cv_io_basic.py +0 -151
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_cv_io_nested.py +0 -97
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_cv_io_pipeline.py +0 -143
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_tuning.py +0 -551
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_tvs_io_basic.py +0 -137
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_tvs_io_nested.py +0 -96
- snowflake/snowpark_connect/includes/python/pyspark/ml/tests/tuning/test_tvs_io_pipeline.py +0 -142
- snowflake/snowpark_connect/includes/python/pyspark/ml/torch/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/ml/torch/tests/test_data_loader.py +0 -137
- snowflake/snowpark_connect/includes/python/pyspark/ml/torch/tests/test_distributor.py +0 -561
- snowflake/snowpark_connect/includes/python/pyspark/ml/torch/tests/test_log_communication.py +0 -172
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_algorithms.py +0 -353
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_feature.py +0 -192
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_linalg.py +0 -680
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_stat.py +0 -206
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_streaming_algorithms.py +0 -471
- snowflake/snowpark_connect/includes/python/pyspark/mllib/tests/test_util.py +0 -108
- snowflake/snowpark_connect/includes/python/pyspark/pandas/spark/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/spark/accessors.py +0 -1281
- snowflake/snowpark_connect/includes/python/pyspark/pandas/spark/functions.py +0 -203
- snowflake/snowpark_connect/includes/python/pyspark/pandas/spark/utils.py +0 -202
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_any_all.py +0 -177
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_apply_func.py +0 -575
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_binary_ops.py +0 -235
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_combine.py +0 -653
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_compute.py +0 -463
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_corrwith.py +0 -86
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_cov.py +0 -151
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_cumulative.py +0 -139
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_describe.py +0 -458
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_eval.py +0 -86
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_melt.py +0 -202
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_missing_data.py +0 -520
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/computation/test_pivot.py +0 -361
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_any_all.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_apply_func.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_binary_ops.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_combine.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_compute.py +0 -60
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_corrwith.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_cov.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_cumulative.py +0 -90
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_describe.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_eval.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_melt.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_missing_data.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/computation/test_parity_pivot.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_base.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_binary_ops.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_boolean_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_categorical_ops.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_complex_ops.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_date_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_datetime_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_null_ops.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_num_arithmetic.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_num_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_num_reverse.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_string_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_timedelta_ops.py +0 -47
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/test_parity_udt_ops.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/data_type_ops/testing_utils.py +0 -226
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_align.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_basic_slow.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_cov_corrwith.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_dot_frame.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_dot_series.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_index.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_series.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_setitem_frame.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/diff_frames_ops/test_parity_setitem_series.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_attrs.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_constructor.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_conversion.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_reindexing.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_reshaping.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_spark.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_take.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_time_series.py +0 -48
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/frame/test_parity_truncate.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_aggregate.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_apply_func.py +0 -41
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_cumulative.py +0 -67
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_describe.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_groupby.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_head_tail.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_index.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_missing_data.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_split_apply.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/groupby/test_parity_stat.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_align.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_base.py +0 -50
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_category.py +0 -73
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_datetime.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_indexing.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_reindex.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_rename.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_reset_index.py +0 -48
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/indexes/test_parity_timedelta.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/io/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/io/test_parity_io.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_frame_plot.py +0 -45
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_frame_plot_matplotlib.py +0 -45
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_frame_plot_plotly.py +0 -49
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_series_plot.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_series_plot_matplotlib.py +0 -53
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/plot/test_parity_series_plot_plotly.py +0 -45
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_all_any.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_arg_ops.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_as_of.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_as_type.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_compute.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_conversion.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_cumulative.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_index.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_missing_data.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_series.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_sort.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/series/test_parity_stat.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_categorical.py +0 -66
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_config.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_csv.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_dataframe_conversion.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_dataframe_spark_io.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_default_index.py +0 -49
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_ewm.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_expanding.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_extension.py +0 -49
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_frame_spark.py +0 -53
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_generic_functions.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_indexing.py +0 -49
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_indexops_spark.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_internal.py +0 -41
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_namespace.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_numpy_compat.py +0 -60
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_ops_on_diff_frames.py +0 -48
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_ops_on_diff_frames_groupby.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_ops_on_diff_frames_groupby_expanding.py +0 -44
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_ops_on_diff_frames_groupby_rolling.py +0 -84
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_repr.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_resample.py +0 -45
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_reshape.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_rolling.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_scalars.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_series_conversion.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_series_datetime.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_series_string.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_spark_functions.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_sql.py +0 -43
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_stats.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_typedef.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_utils.py +0 -37
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/connect/test_parity_window.py +0 -39
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_base.py +0 -107
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_binary_ops.py +0 -224
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_boolean_ops.py +0 -825
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_categorical_ops.py +0 -562
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_complex_ops.py +0 -368
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_date_ops.py +0 -257
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_datetime_ops.py +0 -260
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_null_ops.py +0 -178
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_num_arithmetic.py +0 -184
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_num_ops.py +0 -497
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_num_reverse.py +0 -140
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_string_ops.py +0 -354
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_timedelta_ops.py +0 -219
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/test_udt_ops.py +0 -192
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/data_type_ops/testing_utils.py +0 -228
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_align.py +0 -118
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_basic_slow.py +0 -198
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_cov_corrwith.py +0 -181
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_dot_frame.py +0 -103
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_dot_series.py +0 -141
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_index.py +0 -109
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_series.py +0 -136
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_setitem_frame.py +0 -125
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/diff_frames_ops/test_setitem_series.py +0 -217
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_attrs.py +0 -384
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_constructor.py +0 -598
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_conversion.py +0 -73
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_reindexing.py +0 -869
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_reshaping.py +0 -487
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_spark.py +0 -309
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_take.py +0 -156
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_time_series.py +0 -149
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/frame/test_truncate.py +0 -163
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_aggregate.py +0 -311
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_apply_func.py +0 -524
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_cumulative.py +0 -419
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_describe.py +0 -144
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_groupby.py +0 -979
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_head_tail.py +0 -234
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_index.py +0 -206
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_missing_data.py +0 -421
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_split_apply.py +0 -187
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/groupby/test_stat.py +0 -397
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_align.py +0 -100
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_base.py +0 -2743
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_category.py +0 -484
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_datetime.py +0 -276
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_indexing.py +0 -432
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_reindex.py +0 -310
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_rename.py +0 -257
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_reset_index.py +0 -160
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/indexes/test_timedelta.py +0 -128
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/io/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/io/test_io.py +0 -137
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_frame_plot.py +0 -170
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_frame_plot_matplotlib.py +0 -547
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_frame_plot_plotly.py +0 -285
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_series_plot.py +0 -106
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_series_plot_matplotlib.py +0 -409
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/plot/test_series_plot_plotly.py +0 -247
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_all_any.py +0 -105
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_arg_ops.py +0 -197
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_as_of.py +0 -137
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_as_type.py +0 -227
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_compute.py +0 -634
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_conversion.py +0 -88
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_cumulative.py +0 -139
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_index.py +0 -475
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_missing_data.py +0 -265
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_series.py +0 -818
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_sort.py +0 -162
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/series/test_stat.py +0 -780
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_categorical.py +0 -741
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_config.py +0 -160
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_csv.py +0 -453
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_dataframe_conversion.py +0 -281
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_dataframe_spark_io.py +0 -487
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_default_index.py +0 -109
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_ewm.py +0 -434
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_expanding.py +0 -253
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_extension.py +0 -152
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_frame_spark.py +0 -162
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_generic_functions.py +0 -234
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_indexing.py +0 -1339
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_indexops_spark.py +0 -82
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_internal.py +0 -124
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_namespace.py +0 -638
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_numpy_compat.py +0 -200
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_ops_on_diff_frames.py +0 -1355
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_ops_on_diff_frames_groupby.py +0 -655
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_ops_on_diff_frames_groupby_expanding.py +0 -113
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_ops_on_diff_frames_groupby_rolling.py +0 -118
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_repr.py +0 -192
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_resample.py +0 -346
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_reshape.py +0 -495
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_rolling.py +0 -263
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_scalars.py +0 -59
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_series_conversion.py +0 -85
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_series_datetime.py +0 -364
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_series_string.py +0 -362
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_spark_functions.py +0 -46
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_sql.py +0 -123
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_stats.py +0 -581
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_typedef.py +0 -447
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_utils.py +0 -301
- snowflake/snowpark_connect/includes/python/pyspark/pandas/tests/test_window.py +0 -465
- snowflake/snowpark_connect/includes/python/pyspark/resource/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/resource/tests/test_resources.py +0 -83
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/client/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/client/test_artifact.py +0 -420
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/client/test_client.py +0 -358
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/streaming/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/streaming/test_parity_foreach.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/streaming/test_parity_foreach_batch.py +0 -44
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/streaming/test_parity_listener.py +0 -116
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/streaming/test_parity_streaming.py +0 -35
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_connect_basic.py +0 -3612
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_connect_column.py +0 -1042
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_connect_function.py +0 -2381
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_connect_plan.py +0 -1060
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_arrow.py +0 -163
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_arrow_map.py +0 -38
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_arrow_python_udf.py +0 -48
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_catalog.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_column.py +0 -55
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_conf.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_dataframe.py +0 -96
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_datasources.py +0 -44
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_errors.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_functions.py +0 -59
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_group.py +0 -36
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_cogrouped_map.py +0 -59
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_grouped_map.py +0 -74
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_grouped_map_with_state.py +0 -62
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_map.py +0 -58
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_udf.py +0 -70
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_udf_grouped_agg.py +0 -50
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_udf_scalar.py +0 -68
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_pandas_udf_window.py +0 -40
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_readwriter.py +0 -46
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_serde.py +0 -44
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_types.py +0 -100
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_udf.py +0 -100
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_parity_udtf.py +0 -163
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_session.py +0 -181
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/connect/test_utils.py +0 -42
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_cogrouped_map.py +0 -623
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_grouped_map.py +0 -869
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_grouped_map_with_state.py +0 -342
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_map.py +0 -436
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf.py +0 -363
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf_grouped_agg.py +0 -592
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf_scalar.py +0 -1503
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf_typehints.py +0 -392
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf_typehints_with_future_annotations.py +0 -375
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/pandas/test_pandas_udf_window.py +0 -411
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/streaming/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/streaming/test_streaming.py +0 -401
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/streaming/test_streaming_foreach.py +0 -295
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/streaming/test_streaming_foreach_batch.py +0 -106
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/streaming/test_streaming_listener.py +0 -558
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_arrow.py +0 -1346
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_arrow_map.py +0 -182
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_arrow_python_udf.py +0 -202
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_catalog.py +0 -503
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_column.py +0 -225
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_conf.py +0 -83
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_context.py +0 -201
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_dataframe.py +0 -1931
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_datasources.py +0 -256
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_errors.py +0 -69
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_functions.py +0 -1349
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_group.py +0 -53
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_pandas_sqlmetrics.py +0 -68
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_readwriter.py +0 -283
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_serde.py +0 -155
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_session.py +0 -412
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_types.py +0 -1581
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_udf.py +0 -961
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_udf_profiler.py +0 -165
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_udtf.py +0 -1456
- snowflake/snowpark_connect/includes/python/pyspark/sql/tests/test_utils.py +0 -1686
- snowflake/snowpark_connect/includes/python/pyspark/streaming/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/streaming/tests/test_context.py +0 -184
- snowflake/snowpark_connect/includes/python/pyspark/streaming/tests/test_dstream.py +0 -706
- snowflake/snowpark_connect/includes/python/pyspark/streaming/tests/test_kinesis.py +0 -118
- snowflake/snowpark_connect/includes/python/pyspark/streaming/tests/test_listener.py +0 -160
- snowflake/snowpark_connect/includes/python/pyspark/tests/__init__.py +0 -16
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_appsubmit.py +0 -306
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_broadcast.py +0 -196
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_conf.py +0 -44
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_context.py +0 -346
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_daemon.py +0 -89
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_install_spark.py +0 -124
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_join.py +0 -69
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_memory_profiler.py +0 -167
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_pin_thread.py +0 -194
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_profiler.py +0 -168
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_rdd.py +0 -939
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_rddbarrier.py +0 -52
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_rddsampler.py +0 -66
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_readwrite.py +0 -368
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_serializers.py +0 -257
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_shuffle.py +0 -267
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_stage_sched.py +0 -153
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_statcounter.py +0 -130
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_taskcontext.py +0 -350
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_util.py +0 -97
- snowflake/snowpark_connect/includes/python/pyspark/tests/test_worker.py +0 -271
- snowpark_connect-0.24.0.dist-info/RECORD +0 -898
- {snowpark_connect-0.24.0.data → snowpark_connect-0.25.0.data}/scripts/snowpark-connect +0 -0
- {snowpark_connect-0.24.0.data → snowpark_connect-0.25.0.data}/scripts/snowpark-session +0 -0
- {snowpark_connect-0.24.0.data → snowpark_connect-0.25.0.data}/scripts/snowpark-submit +0 -0
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/WHEEL +0 -0
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/licenses/LICENSE-binary +0 -0
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/licenses/LICENSE.txt +0 -0
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/licenses/NOTICE-binary +0 -0
- {snowpark_connect-0.24.0.dist-info → snowpark_connect-0.25.0.dist-info}/top_level.txt +0 -0
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
-
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
-
# this work for additional information regarding copyright ownership.
|
|
5
|
-
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
-
# (the "License"); you may not use this file except in compliance with
|
|
7
|
-
# the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
import os
|
|
18
|
-
import pickle
|
|
19
|
-
import random
|
|
20
|
-
import time
|
|
21
|
-
import tempfile
|
|
22
|
-
import unittest
|
|
23
|
-
|
|
24
|
-
from py4j.protocol import Py4JJavaError
|
|
25
|
-
|
|
26
|
-
from pyspark import SparkConf, SparkContext, Broadcast
|
|
27
|
-
from pyspark.java_gateway import launch_gateway
|
|
28
|
-
from pyspark.serializers import ChunkedStream
|
|
29
|
-
from pyspark.sql import SparkSession, Row
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class BroadcastTest(unittest.TestCase):
|
|
33
|
-
def tearDown(self):
|
|
34
|
-
if getattr(self, "sc", None) is not None:
|
|
35
|
-
self.sc.stop()
|
|
36
|
-
self.sc = None
|
|
37
|
-
|
|
38
|
-
def _test_encryption_helper(self, vs):
|
|
39
|
-
"""
|
|
40
|
-
Creates a broadcast variables for each value in vs, and runs a simple job to make sure the
|
|
41
|
-
value is the same when it's read in the executors. Also makes sure there are no task
|
|
42
|
-
failures.
|
|
43
|
-
"""
|
|
44
|
-
bs = [self.sc.broadcast(value=v) for v in vs]
|
|
45
|
-
exec_values = self.sc.parallelize(range(2)).map(lambda x: [b.value for b in bs]).collect()
|
|
46
|
-
for ev in exec_values:
|
|
47
|
-
self.assertEqual(ev, vs)
|
|
48
|
-
# make sure there are no task failures
|
|
49
|
-
status = self.sc.statusTracker()
|
|
50
|
-
for jid in status.getJobIdsForGroup():
|
|
51
|
-
for sid in status.getJobInfo(jid).stageIds:
|
|
52
|
-
stage_info = status.getStageInfo(sid)
|
|
53
|
-
self.assertEqual(0, stage_info.numFailedTasks)
|
|
54
|
-
|
|
55
|
-
def _test_multiple_broadcasts(self, *extra_confs):
|
|
56
|
-
"""
|
|
57
|
-
Test broadcast variables make it OK to the executors. Tests multiple broadcast variables,
|
|
58
|
-
and also multiple jobs.
|
|
59
|
-
"""
|
|
60
|
-
conf = SparkConf()
|
|
61
|
-
for key, value in extra_confs:
|
|
62
|
-
conf.set(key, value)
|
|
63
|
-
conf.setMaster("local-cluster[2,1,1024]")
|
|
64
|
-
self.sc = SparkContext(conf=conf)
|
|
65
|
-
self._test_encryption_helper([5])
|
|
66
|
-
self._test_encryption_helper([5, 10, 20])
|
|
67
|
-
|
|
68
|
-
def test_broadcast_with_encryption(self):
|
|
69
|
-
self._test_multiple_broadcasts(("spark.io.encryption.enabled", "true"))
|
|
70
|
-
|
|
71
|
-
def test_broadcast_no_encryption(self):
|
|
72
|
-
self._test_multiple_broadcasts()
|
|
73
|
-
|
|
74
|
-
def _test_broadcast_on_driver(self, *extra_confs):
|
|
75
|
-
conf = SparkConf()
|
|
76
|
-
for key, value in extra_confs:
|
|
77
|
-
conf.set(key, value)
|
|
78
|
-
conf.setMaster("local-cluster[2,1,1024]")
|
|
79
|
-
self.sc = SparkContext(conf=conf)
|
|
80
|
-
bs = self.sc.broadcast(value=5)
|
|
81
|
-
self.assertEqual(5, bs.value)
|
|
82
|
-
|
|
83
|
-
def test_broadcast_value_driver_no_encryption(self):
|
|
84
|
-
self._test_broadcast_on_driver()
|
|
85
|
-
|
|
86
|
-
def test_broadcast_value_driver_encryption(self):
|
|
87
|
-
self._test_broadcast_on_driver(("spark.io.encryption.enabled", "true"))
|
|
88
|
-
|
|
89
|
-
def test_broadcast_value_against_gc(self):
|
|
90
|
-
# Test broadcast value against gc.
|
|
91
|
-
conf = SparkConf()
|
|
92
|
-
conf.setMaster("local[1,1]")
|
|
93
|
-
conf.set("spark.memory.fraction", "0.0001")
|
|
94
|
-
self.sc = SparkContext(conf=conf)
|
|
95
|
-
b = self.sc.broadcast([100])
|
|
96
|
-
try:
|
|
97
|
-
res = self.sc.parallelize([0], 1).map(lambda x: 0 if x == 0 else b.value[0]).collect()
|
|
98
|
-
self.assertEqual([0], res)
|
|
99
|
-
self.sc._jvm.java.lang.System.gc()
|
|
100
|
-
time.sleep(5)
|
|
101
|
-
res = self.sc.parallelize([1], 1).map(lambda x: 0 if x == 0 else b.value[0]).collect()
|
|
102
|
-
self.assertEqual([100], res)
|
|
103
|
-
finally:
|
|
104
|
-
b.destroy()
|
|
105
|
-
|
|
106
|
-
def test_broadcast_when_sc_none(self):
|
|
107
|
-
# SPARK-39029 : Test case to improve test coverage of broadcast.py
|
|
108
|
-
# It tests the case when SparkContext is none and Broadcast is called at executor
|
|
109
|
-
conf = SparkConf()
|
|
110
|
-
conf.setMaster("local-cluster[2,1,1024]")
|
|
111
|
-
self.sc = SparkContext(conf=conf)
|
|
112
|
-
bs = self.sc.broadcast([10])
|
|
113
|
-
bs_sc_none = Broadcast(sc=None, path=bs._path)
|
|
114
|
-
self.assertEqual(bs_sc_none.value, [10])
|
|
115
|
-
|
|
116
|
-
def test_broadcast_for_error_condition(self):
|
|
117
|
-
# SPARK-39029: Test case to improve test coverage of broadcast.py
|
|
118
|
-
# It tests the case when broadcast should raise error .
|
|
119
|
-
conf = SparkConf()
|
|
120
|
-
conf.setMaster("local-cluster[2,1,1024]")
|
|
121
|
-
self.sc = SparkContext(conf=conf)
|
|
122
|
-
bs = self.sc.broadcast([1])
|
|
123
|
-
with self.assertRaisesRegex(pickle.PickleError, "Could.*not.*serialize.*broadcast"):
|
|
124
|
-
self.sc.broadcast(self.sc)
|
|
125
|
-
with self.assertRaisesRegex(Py4JJavaError, "RuntimeError.*Broadcast.*destroyed.*driver"):
|
|
126
|
-
self.sc.parallelize([1]).map(lambda x: bs.destroy()).collect()
|
|
127
|
-
with self.assertRaisesRegex(Py4JJavaError, "RuntimeError.*Broadcast.*unpersisted.*driver"):
|
|
128
|
-
self.sc.parallelize([1]).map(lambda x: bs.unpersist()).collect()
|
|
129
|
-
|
|
130
|
-
def test_broadcast_in_udfs_with_encryption(self):
|
|
131
|
-
conf = SparkConf()
|
|
132
|
-
conf.set("spark.io.encryption.enabled", "true")
|
|
133
|
-
conf.setMaster("local-cluster[2,1,1024]")
|
|
134
|
-
self.sc = SparkContext(conf=conf)
|
|
135
|
-
bar = {"a": "aa", "b": "bb"}
|
|
136
|
-
foo = self.sc.broadcast(bar)
|
|
137
|
-
spark = SparkSession(self.sc)
|
|
138
|
-
spark.udf.register("MYUDF", lambda x: foo.value[x] if x else "")
|
|
139
|
-
sel = spark.sql("SELECT MYUDF('a') AS a, MYUDF('b') AS b")
|
|
140
|
-
self.assertEqual(sel.collect(), [Row(a="aa", b="bb")])
|
|
141
|
-
spark.stop()
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
class BroadcastFrameProtocolTest(unittest.TestCase):
|
|
145
|
-
@classmethod
|
|
146
|
-
def setUpClass(cls):
|
|
147
|
-
gateway = launch_gateway(SparkConf())
|
|
148
|
-
cls._jvm = gateway.jvm
|
|
149
|
-
cls.longMessage = True
|
|
150
|
-
random.seed(42)
|
|
151
|
-
|
|
152
|
-
def _test_chunked_stream(self, data, py_buf_size):
|
|
153
|
-
# write data using the chunked protocol from python.
|
|
154
|
-
chunked_file = tempfile.NamedTemporaryFile(delete=False)
|
|
155
|
-
dechunked_file = tempfile.NamedTemporaryFile(delete=False)
|
|
156
|
-
dechunked_file.close()
|
|
157
|
-
try:
|
|
158
|
-
out = ChunkedStream(chunked_file, py_buf_size)
|
|
159
|
-
out.write(data)
|
|
160
|
-
out.close()
|
|
161
|
-
# now try to read it in java
|
|
162
|
-
jin = self._jvm.java.io.FileInputStream(chunked_file.name)
|
|
163
|
-
jout = self._jvm.java.io.FileOutputStream(dechunked_file.name)
|
|
164
|
-
self._jvm.DechunkedInputStream.dechunkAndCopyToOutput(jin, jout)
|
|
165
|
-
# java should have decoded it back to the original data
|
|
166
|
-
self.assertEqual(len(data), os.stat(dechunked_file.name).st_size)
|
|
167
|
-
with open(dechunked_file.name, "rb") as f:
|
|
168
|
-
byte = f.read(1)
|
|
169
|
-
idx = 0
|
|
170
|
-
while byte:
|
|
171
|
-
self.assertEqual(data[idx], bytearray(byte)[0], msg="idx = " + str(idx))
|
|
172
|
-
byte = f.read(1)
|
|
173
|
-
idx += 1
|
|
174
|
-
finally:
|
|
175
|
-
os.unlink(chunked_file.name)
|
|
176
|
-
os.unlink(dechunked_file.name)
|
|
177
|
-
|
|
178
|
-
def test_chunked_stream(self):
|
|
179
|
-
def random_bytes(n):
|
|
180
|
-
return bytearray(random.getrandbits(8) for _ in range(n))
|
|
181
|
-
|
|
182
|
-
for data_length in [1, 10, 100, 10000]:
|
|
183
|
-
for buffer_length in [1, 2, 5, 8192]:
|
|
184
|
-
self._test_chunked_stream(random_bytes(data_length), buffer_length)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if __name__ == "__main__":
|
|
188
|
-
from pyspark.tests.test_broadcast import * # noqa: F401
|
|
189
|
-
|
|
190
|
-
try:
|
|
191
|
-
import xmlrunner
|
|
192
|
-
|
|
193
|
-
testRunner = xmlrunner.XMLTestRunner(output="target/test-reports", verbosity=2)
|
|
194
|
-
except ImportError:
|
|
195
|
-
testRunner = None
|
|
196
|
-
unittest.main(testRunner=testRunner, verbosity=2)
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
-
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
-
# this work for additional information regarding copyright ownership.
|
|
5
|
-
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
-
# (the "License"); you may not use this file except in compliance with
|
|
7
|
-
# the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
import random
|
|
18
|
-
import unittest
|
|
19
|
-
|
|
20
|
-
from pyspark import SparkContext, SparkConf
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class ConfTests(unittest.TestCase):
|
|
24
|
-
def test_memory_conf(self):
|
|
25
|
-
memoryList = ["1T", "1G", "1M", "1024K"]
|
|
26
|
-
for memory in memoryList:
|
|
27
|
-
sc = SparkContext(conf=SparkConf().set("spark.python.worker.memory", memory))
|
|
28
|
-
lst = list(range(1024))
|
|
29
|
-
random.shuffle(lst)
|
|
30
|
-
rdd = sc.parallelize(lst, 4)
|
|
31
|
-
self.assertEqual(sorted(lst), rdd.sortBy(lambda x: x).collect())
|
|
32
|
-
sc.stop()
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if __name__ == "__main__":
|
|
36
|
-
from pyspark.tests.test_conf import * # noqa: F401
|
|
37
|
-
|
|
38
|
-
try:
|
|
39
|
-
import xmlrunner
|
|
40
|
-
|
|
41
|
-
testRunner = xmlrunner.XMLTestRunner(output="target/test-reports", verbosity=2)
|
|
42
|
-
except ImportError:
|
|
43
|
-
testRunner = None
|
|
44
|
-
unittest.main(testRunner=testRunner, verbosity=2)
|
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
-
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
-
# this work for additional information regarding copyright ownership.
|
|
5
|
-
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
-
# (the "License"); you may not use this file except in compliance with
|
|
7
|
-
# the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
import os
|
|
18
|
-
import shutil
|
|
19
|
-
import stat
|
|
20
|
-
import tempfile
|
|
21
|
-
import threading
|
|
22
|
-
import time
|
|
23
|
-
import unittest
|
|
24
|
-
from collections import namedtuple
|
|
25
|
-
|
|
26
|
-
from pyspark import SparkConf, SparkFiles, SparkContext
|
|
27
|
-
from pyspark.testing.utils import ReusedPySparkTestCase, PySparkTestCase, QuietTest, SPARK_HOME
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class CheckpointTests(ReusedPySparkTestCase):
|
|
31
|
-
def setUp(self):
|
|
32
|
-
self.checkpointDir = tempfile.NamedTemporaryFile(delete=False)
|
|
33
|
-
os.unlink(self.checkpointDir.name)
|
|
34
|
-
self.sc.setCheckpointDir(self.checkpointDir.name)
|
|
35
|
-
|
|
36
|
-
def tearDown(self):
|
|
37
|
-
shutil.rmtree(self.checkpointDir.name)
|
|
38
|
-
|
|
39
|
-
def test_basic_checkpointing(self):
|
|
40
|
-
parCollection = self.sc.parallelize([1, 2, 3, 4])
|
|
41
|
-
flatMappedRDD = parCollection.flatMap(lambda x: range(1, x + 1))
|
|
42
|
-
|
|
43
|
-
self.assertFalse(flatMappedRDD.isCheckpointed())
|
|
44
|
-
self.assertTrue(flatMappedRDD.getCheckpointFile() is None)
|
|
45
|
-
self.assertFalse(self.sc.getCheckpointDir() is None)
|
|
46
|
-
|
|
47
|
-
flatMappedRDD.checkpoint()
|
|
48
|
-
result = flatMappedRDD.collect()
|
|
49
|
-
time.sleep(1) # 1 second
|
|
50
|
-
self.assertTrue(flatMappedRDD.isCheckpointed())
|
|
51
|
-
self.assertEqual(flatMappedRDD.collect(), result)
|
|
52
|
-
self.assertEqual(
|
|
53
|
-
"file:" + self.checkpointDir.name,
|
|
54
|
-
os.path.dirname(os.path.dirname(flatMappedRDD.getCheckpointFile())),
|
|
55
|
-
)
|
|
56
|
-
self.assertEqual(
|
|
57
|
-
self.sc.getCheckpointDir(), os.path.dirname(flatMappedRDD.getCheckpointFile())
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
def test_checkpoint_and_restore(self):
|
|
61
|
-
parCollection = self.sc.parallelize([1, 2, 3, 4])
|
|
62
|
-
flatMappedRDD = parCollection.flatMap(lambda x: [x])
|
|
63
|
-
|
|
64
|
-
self.assertFalse(flatMappedRDD.isCheckpointed())
|
|
65
|
-
self.assertTrue(flatMappedRDD.getCheckpointFile() is None)
|
|
66
|
-
|
|
67
|
-
flatMappedRDD.checkpoint()
|
|
68
|
-
flatMappedRDD.count() # forces a checkpoint to be computed
|
|
69
|
-
time.sleep(1) # 1 second
|
|
70
|
-
|
|
71
|
-
self.assertTrue(flatMappedRDD.getCheckpointFile() is not None)
|
|
72
|
-
recovered = self.sc._checkpointFile(
|
|
73
|
-
flatMappedRDD.getCheckpointFile(), flatMappedRDD._jrdd_deserializer
|
|
74
|
-
)
|
|
75
|
-
self.assertEqual([1, 2, 3, 4], recovered.collect())
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
class LocalCheckpointTests(ReusedPySparkTestCase):
|
|
79
|
-
def test_basic_localcheckpointing(self):
|
|
80
|
-
parCollection = self.sc.parallelize([1, 2, 3, 4])
|
|
81
|
-
flatMappedRDD = parCollection.flatMap(lambda x: range(1, x + 1))
|
|
82
|
-
|
|
83
|
-
self.assertFalse(flatMappedRDD.isCheckpointed())
|
|
84
|
-
self.assertFalse(flatMappedRDD.isLocallyCheckpointed())
|
|
85
|
-
|
|
86
|
-
flatMappedRDD.localCheckpoint()
|
|
87
|
-
result = flatMappedRDD.collect()
|
|
88
|
-
time.sleep(1) # 1 second
|
|
89
|
-
self.assertTrue(flatMappedRDD.isCheckpointed())
|
|
90
|
-
self.assertTrue(flatMappedRDD.isLocallyCheckpointed())
|
|
91
|
-
self.assertEqual(flatMappedRDD.collect(), result)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
class AddFileTests(PySparkTestCase):
|
|
95
|
-
def test_add_py_file(self):
|
|
96
|
-
# To ensure that we're actually testing addPyFile's effects, check that
|
|
97
|
-
# this job fails due to `userlibrary` not being on the Python path:
|
|
98
|
-
# disable logging in log4j temporarily
|
|
99
|
-
def func(x):
|
|
100
|
-
from userlibrary import UserClass
|
|
101
|
-
|
|
102
|
-
return UserClass().hello()
|
|
103
|
-
|
|
104
|
-
with QuietTest(self.sc):
|
|
105
|
-
self.assertRaises(Exception, self.sc.parallelize(range(2)).map(func).first)
|
|
106
|
-
|
|
107
|
-
# Add the file, so the job should now succeed:
|
|
108
|
-
path = os.path.join(SPARK_HOME, "python/test_support/userlibrary.py")
|
|
109
|
-
self.sc.addPyFile(path)
|
|
110
|
-
res = self.sc.parallelize(range(2)).map(func).first()
|
|
111
|
-
self.assertEqual("Hello World!", res)
|
|
112
|
-
|
|
113
|
-
def test_add_file_locally(self):
|
|
114
|
-
path = os.path.join(SPARK_HOME, "python/test_support/hello/hello.txt")
|
|
115
|
-
self.sc.addFile(path)
|
|
116
|
-
download_path = SparkFiles.get("hello.txt")
|
|
117
|
-
self.assertNotEqual(path, download_path)
|
|
118
|
-
with open(download_path) as test_file:
|
|
119
|
-
self.assertEqual("Hello World!\n", test_file.readline())
|
|
120
|
-
|
|
121
|
-
def test_add_file_recursively_locally(self):
|
|
122
|
-
path = os.path.join(SPARK_HOME, "python/test_support/hello")
|
|
123
|
-
self.sc.addFile(path, True)
|
|
124
|
-
download_path = SparkFiles.get("hello")
|
|
125
|
-
self.assertNotEqual(path, download_path)
|
|
126
|
-
with open(download_path + "/hello.txt") as test_file:
|
|
127
|
-
self.assertEqual("Hello World!\n", test_file.readline())
|
|
128
|
-
with open(download_path + "/sub_hello/sub_hello.txt") as test_file:
|
|
129
|
-
self.assertEqual("Sub Hello World!\n", test_file.readline())
|
|
130
|
-
|
|
131
|
-
def test_add_py_file_locally(self):
|
|
132
|
-
# To ensure that we're actually testing addPyFile's effects, check that
|
|
133
|
-
# this fails due to `userlibrary` not being on the Python path:
|
|
134
|
-
def func():
|
|
135
|
-
from userlibrary import UserClass # noqa: F401
|
|
136
|
-
|
|
137
|
-
self.assertRaises(ImportError, func)
|
|
138
|
-
path = os.path.join(SPARK_HOME, "python/test_support/userlibrary.py")
|
|
139
|
-
self.sc.addPyFile(path)
|
|
140
|
-
from userlibrary import UserClass
|
|
141
|
-
|
|
142
|
-
self.assertEqual("Hello World!", UserClass().hello())
|
|
143
|
-
|
|
144
|
-
def test_add_egg_file_locally(self):
|
|
145
|
-
# To ensure that we're actually testing addPyFile's effects, check that
|
|
146
|
-
# this fails due to `userlibrary` not being on the Python path:
|
|
147
|
-
def func():
|
|
148
|
-
from userlib import UserClass
|
|
149
|
-
|
|
150
|
-
UserClass()
|
|
151
|
-
|
|
152
|
-
self.assertRaises(ImportError, func)
|
|
153
|
-
path = os.path.join(SPARK_HOME, "python/test_support/userlib-0.1.zip")
|
|
154
|
-
self.sc.addPyFile(path)
|
|
155
|
-
from userlib import UserClass
|
|
156
|
-
|
|
157
|
-
self.assertEqual("Hello World from inside a package!", UserClass().hello())
|
|
158
|
-
|
|
159
|
-
def test_overwrite_system_module(self):
|
|
160
|
-
self.sc.addPyFile(os.path.join(SPARK_HOME, "python/test_support/SimpleHTTPServer.py"))
|
|
161
|
-
|
|
162
|
-
import SimpleHTTPServer
|
|
163
|
-
|
|
164
|
-
self.assertEqual("My Server", SimpleHTTPServer.__name__)
|
|
165
|
-
|
|
166
|
-
def func(x):
|
|
167
|
-
import SimpleHTTPServer
|
|
168
|
-
|
|
169
|
-
return SimpleHTTPServer.__name__
|
|
170
|
-
|
|
171
|
-
self.assertEqual(["My Server"], self.sc.parallelize(range(1)).map(func).collect())
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
class ContextTests(unittest.TestCase):
|
|
175
|
-
def test_failed_sparkcontext_creation(self):
|
|
176
|
-
# Regression test for SPARK-1550
|
|
177
|
-
self.assertRaises(Exception, lambda: SparkContext("an-invalid-master-name"))
|
|
178
|
-
|
|
179
|
-
def test_get_or_create(self):
|
|
180
|
-
with SparkContext.getOrCreate() as sc:
|
|
181
|
-
self.assertTrue(SparkContext.getOrCreate() is sc)
|
|
182
|
-
|
|
183
|
-
def test_parallelize_eager_cleanup(self):
|
|
184
|
-
with SparkContext() as sc:
|
|
185
|
-
temp_files = os.listdir(sc._temp_dir)
|
|
186
|
-
sc.parallelize([0, 1, 2])
|
|
187
|
-
post_parallelize_temp_files = os.listdir(sc._temp_dir)
|
|
188
|
-
self.assertEqual(temp_files, post_parallelize_temp_files)
|
|
189
|
-
|
|
190
|
-
def test_set_conf(self):
|
|
191
|
-
# This is for an internal use case. When there is an existing SparkContext,
|
|
192
|
-
# SparkSession's builder needs to set configs into SparkContext's conf.
|
|
193
|
-
sc = SparkContext()
|
|
194
|
-
sc._conf.set("spark.test.SPARK16224", "SPARK16224")
|
|
195
|
-
self.assertEqual(sc._jsc.sc().conf().get("spark.test.SPARK16224"), "SPARK16224")
|
|
196
|
-
sc.stop()
|
|
197
|
-
|
|
198
|
-
def test_stop(self):
|
|
199
|
-
sc = SparkContext()
|
|
200
|
-
self.assertNotEqual(SparkContext._active_spark_context, None)
|
|
201
|
-
sc.stop()
|
|
202
|
-
self.assertEqual(SparkContext._active_spark_context, None)
|
|
203
|
-
|
|
204
|
-
def test_with(self):
|
|
205
|
-
with SparkContext():
|
|
206
|
-
self.assertNotEqual(SparkContext._active_spark_context, None)
|
|
207
|
-
self.assertEqual(SparkContext._active_spark_context, None)
|
|
208
|
-
|
|
209
|
-
def test_with_exception(self):
|
|
210
|
-
try:
|
|
211
|
-
with SparkContext():
|
|
212
|
-
self.assertNotEqual(SparkContext._active_spark_context, None)
|
|
213
|
-
raise RuntimeError()
|
|
214
|
-
except BaseException:
|
|
215
|
-
pass
|
|
216
|
-
self.assertEqual(SparkContext._active_spark_context, None)
|
|
217
|
-
|
|
218
|
-
def test_with_stop(self):
|
|
219
|
-
with SparkContext() as sc:
|
|
220
|
-
self.assertNotEqual(SparkContext._active_spark_context, None)
|
|
221
|
-
sc.stop()
|
|
222
|
-
self.assertEqual(SparkContext._active_spark_context, None)
|
|
223
|
-
|
|
224
|
-
def test_progress_api(self):
|
|
225
|
-
with SparkContext() as sc:
|
|
226
|
-
sc.setJobGroup("test_progress_api", "", True)
|
|
227
|
-
rdd = sc.parallelize(range(10)).map(lambda x: time.sleep(100))
|
|
228
|
-
|
|
229
|
-
def run():
|
|
230
|
-
# When thread is pinned, job group should be set for each thread for now.
|
|
231
|
-
# Local properties seem not being inherited like Scala side does.
|
|
232
|
-
if os.environ.get("PYSPARK_PIN_THREAD", "true").lower() == "true":
|
|
233
|
-
sc.setJobGroup("test_progress_api", "", True)
|
|
234
|
-
try:
|
|
235
|
-
rdd.count()
|
|
236
|
-
except Exception:
|
|
237
|
-
pass
|
|
238
|
-
|
|
239
|
-
t = threading.Thread(target=run)
|
|
240
|
-
t.daemon = True
|
|
241
|
-
t.start()
|
|
242
|
-
# wait for scheduler to start
|
|
243
|
-
time.sleep(3)
|
|
244
|
-
|
|
245
|
-
tracker = sc.statusTracker()
|
|
246
|
-
jobIds = tracker.getJobIdsForGroup("test_progress_api")
|
|
247
|
-
self.assertEqual(1, len(jobIds))
|
|
248
|
-
job = tracker.getJobInfo(jobIds[0])
|
|
249
|
-
self.assertEqual(1, len(job.stageIds))
|
|
250
|
-
stage = tracker.getStageInfo(job.stageIds[0])
|
|
251
|
-
self.assertEqual(rdd.getNumPartitions(), stage.numTasks)
|
|
252
|
-
|
|
253
|
-
sc.cancelAllJobs()
|
|
254
|
-
t.join()
|
|
255
|
-
# wait for event listener to update the status
|
|
256
|
-
time.sleep(1)
|
|
257
|
-
|
|
258
|
-
job = tracker.getJobInfo(jobIds[0])
|
|
259
|
-
self.assertEqual("FAILED", job.status)
|
|
260
|
-
self.assertEqual([], tracker.getActiveJobsIds())
|
|
261
|
-
self.assertEqual([], tracker.getActiveStageIds())
|
|
262
|
-
|
|
263
|
-
sc.stop()
|
|
264
|
-
|
|
265
|
-
def test_startTime(self):
|
|
266
|
-
with SparkContext() as sc:
|
|
267
|
-
self.assertGreater(sc.startTime, 0)
|
|
268
|
-
|
|
269
|
-
def test_forbid_insecure_gateway(self):
|
|
270
|
-
# Fail immediately if you try to create a SparkContext
|
|
271
|
-
# with an insecure gateway
|
|
272
|
-
parameters = namedtuple("MockGatewayParameters", "auth_token")(None)
|
|
273
|
-
mock_insecure_gateway = namedtuple("MockJavaGateway", "gateway_parameters")(parameters)
|
|
274
|
-
with self.assertRaises(ValueError) as context:
|
|
275
|
-
SparkContext(gateway=mock_insecure_gateway)
|
|
276
|
-
self.assertIn("insecure Py4j gateway", str(context.exception))
|
|
277
|
-
|
|
278
|
-
def test_resources(self):
|
|
279
|
-
"""Test the resources are empty by default."""
|
|
280
|
-
with SparkContext() as sc:
|
|
281
|
-
resources = sc.resources
|
|
282
|
-
self.assertEqual(len(resources), 0)
|
|
283
|
-
|
|
284
|
-
def test_disallow_to_create_spark_context_in_executors(self):
|
|
285
|
-
# SPARK-32160: SparkContext should not be created in executors.
|
|
286
|
-
with SparkContext("local-cluster[3, 1, 1024]") as sc:
|
|
287
|
-
with self.assertRaises(Exception) as context:
|
|
288
|
-
sc.range(2).foreach(lambda _: SparkContext())
|
|
289
|
-
self.assertIn(
|
|
290
|
-
"CONTEXT_ONLY_VALID_ON_DRIVER",
|
|
291
|
-
str(context.exception),
|
|
292
|
-
)
|
|
293
|
-
|
|
294
|
-
def test_allow_to_create_spark_context_in_executors(self):
|
|
295
|
-
# SPARK-32160: SparkContext can be created in executors if the config is set.
|
|
296
|
-
|
|
297
|
-
def create_spark_context():
|
|
298
|
-
conf = SparkConf().set("spark.executor.allowSparkContext", "true")
|
|
299
|
-
with SparkContext(conf=conf):
|
|
300
|
-
pass
|
|
301
|
-
|
|
302
|
-
with SparkContext("local-cluster[3, 1, 1024]") as sc:
|
|
303
|
-
sc.range(2).foreach(lambda _: create_spark_context())
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
class ContextTestsWithResources(unittest.TestCase):
|
|
307
|
-
def setUp(self):
|
|
308
|
-
class_name = self.__class__.__name__
|
|
309
|
-
self.tempFile = tempfile.NamedTemporaryFile(delete=False)
|
|
310
|
-
self.tempFile.write(b'echo {\\"name\\": \\"gpu\\", \\"addresses\\": [\\"0\\"]}')
|
|
311
|
-
self.tempFile.close()
|
|
312
|
-
# create temporary directory for Worker resources coordination
|
|
313
|
-
self.tempdir = tempfile.NamedTemporaryFile(delete=False)
|
|
314
|
-
os.unlink(self.tempdir.name)
|
|
315
|
-
os.chmod(
|
|
316
|
-
self.tempFile.name,
|
|
317
|
-
stat.S_IRWXU | stat.S_IXGRP | stat.S_IRGRP | stat.S_IROTH | stat.S_IXOTH,
|
|
318
|
-
)
|
|
319
|
-
conf = SparkConf().set("spark.test.home", SPARK_HOME)
|
|
320
|
-
conf = conf.set("spark.driver.resource.gpu.amount", "1")
|
|
321
|
-
conf = conf.set("spark.driver.resource.gpu.discoveryScript", self.tempFile.name)
|
|
322
|
-
self.sc = SparkContext("local-cluster[2,1,1024]", class_name, conf=conf)
|
|
323
|
-
|
|
324
|
-
def test_resources(self):
|
|
325
|
-
"""Test the resources are available."""
|
|
326
|
-
resources = self.sc.resources
|
|
327
|
-
self.assertEqual(len(resources), 1)
|
|
328
|
-
self.assertTrue("gpu" in resources)
|
|
329
|
-
self.assertEqual(resources["gpu"].name, "gpu")
|
|
330
|
-
self.assertEqual(resources["gpu"].addresses, ["0"])
|
|
331
|
-
|
|
332
|
-
def tearDown(self):
|
|
333
|
-
os.unlink(self.tempFile.name)
|
|
334
|
-
self.sc.stop()
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
if __name__ == "__main__":
|
|
338
|
-
from pyspark.tests.test_context import * # noqa: F401
|
|
339
|
-
|
|
340
|
-
try:
|
|
341
|
-
import xmlrunner
|
|
342
|
-
|
|
343
|
-
testRunner = xmlrunner.XMLTestRunner(output="target/test-reports", verbosity=2)
|
|
344
|
-
except ImportError:
|
|
345
|
-
testRunner = None
|
|
346
|
-
unittest.main(testRunner=testRunner, verbosity=2)
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
-
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
-
# this work for additional information regarding copyright ownership.
|
|
5
|
-
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
-
# (the "License"); you may not use this file except in compliance with
|
|
7
|
-
# the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
import os
|
|
18
|
-
import sys
|
|
19
|
-
import time
|
|
20
|
-
import unittest
|
|
21
|
-
|
|
22
|
-
from pyspark.serializers import read_int
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class DaemonTests(unittest.TestCase):
|
|
26
|
-
def connect(self, port):
|
|
27
|
-
from socket import socket, AF_INET, AF_INET6, SOCK_STREAM
|
|
28
|
-
|
|
29
|
-
family, host = AF_INET, "127.0.0.1"
|
|
30
|
-
if os.environ.get("SPARK_PREFER_IPV6", "false").lower() == "true":
|
|
31
|
-
family, host = AF_INET6, "::1"
|
|
32
|
-
sock = socket(family, SOCK_STREAM)
|
|
33
|
-
sock.connect((host, port))
|
|
34
|
-
# send a split index of -1 to shutdown the worker
|
|
35
|
-
sock.send(b"\xFF\xFF\xFF\xFF")
|
|
36
|
-
sock.close()
|
|
37
|
-
return True
|
|
38
|
-
|
|
39
|
-
def do_termination_test(self, terminator):
|
|
40
|
-
from subprocess import Popen, PIPE
|
|
41
|
-
from errno import ECONNREFUSED
|
|
42
|
-
|
|
43
|
-
# start daemon
|
|
44
|
-
daemon_path = os.path.join(os.path.dirname(__file__), "..", "daemon.py")
|
|
45
|
-
python_exec = sys.executable or os.environ.get("PYSPARK_PYTHON")
|
|
46
|
-
daemon = Popen([python_exec, daemon_path], stdin=PIPE, stdout=PIPE)
|
|
47
|
-
|
|
48
|
-
# read the port number
|
|
49
|
-
port = read_int(daemon.stdout)
|
|
50
|
-
|
|
51
|
-
# daemon should accept connections
|
|
52
|
-
self.assertTrue(self.connect(port))
|
|
53
|
-
|
|
54
|
-
# wait worker process spawned from daemon exit.
|
|
55
|
-
time.sleep(1)
|
|
56
|
-
|
|
57
|
-
# request shutdown
|
|
58
|
-
terminator(daemon)
|
|
59
|
-
time.sleep(1)
|
|
60
|
-
|
|
61
|
-
# daemon should no longer accept connections
|
|
62
|
-
try:
|
|
63
|
-
self.connect(port)
|
|
64
|
-
except EnvironmentError as exception:
|
|
65
|
-
self.assertEqual(exception.errno, ECONNREFUSED)
|
|
66
|
-
else:
|
|
67
|
-
self.fail("Expected EnvironmentError to be raised")
|
|
68
|
-
|
|
69
|
-
def test_termination_stdin(self):
|
|
70
|
-
"""Ensure that daemon and workers terminate when stdin is closed."""
|
|
71
|
-
self.do_termination_test(lambda daemon: daemon.stdin.close())
|
|
72
|
-
|
|
73
|
-
def test_termination_sigterm(self):
|
|
74
|
-
"""Ensure that daemon and workers terminate on SIGTERM."""
|
|
75
|
-
from signal import SIGTERM
|
|
76
|
-
|
|
77
|
-
self.do_termination_test(lambda daemon: os.kill(daemon.pid, SIGTERM))
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if __name__ == "__main__":
|
|
81
|
-
from pyspark.tests.test_daemon import * # noqa: F401
|
|
82
|
-
|
|
83
|
-
try:
|
|
84
|
-
import xmlrunner
|
|
85
|
-
|
|
86
|
-
testRunner = xmlrunner.XMLTestRunner(output="target/test-reports", verbosity=2)
|
|
87
|
-
except ImportError:
|
|
88
|
-
testRunner = None
|
|
89
|
-
unittest.main(testRunner=testRunner, verbosity=2)
|