snowpark-connect 0.25.0__tar.gz → 0.26.0__tar.gz

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.

Files changed (487) hide show
  1. {snowpark_connect-0.25.0/src/snowpark_connect.egg-info → snowpark_connect-0.26.0}/PKG-INFO +1 -1
  2. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/config.py +10 -0
  3. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/dataframe_container.py +16 -0
  4. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_udf.py +68 -27
  5. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_unresolved_function.py +22 -21
  6. snowpark_connect-0.26.0/src/snowflake/snowpark_connect/includes/jars/json4s-native_2.12-3.7.0-M11.jar +0 -0
  7. snowpark_connect-0.26.0/src/snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar +0 -0
  8. snowpark_connect-0.26.0/src/snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar +0 -0
  9. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_map_partitions.py +9 -4
  10. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_relation.py +12 -1
  11. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_row_ops.py +8 -1
  12. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_udtf.py +96 -44
  13. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/utils.py +44 -0
  14. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/write/map_write.py +113 -22
  15. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/resources_initializer.py +18 -5
  16. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/server.py +8 -1
  17. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/concurrent.py +4 -0
  18. snowpark_connect-0.26.0/src/snowflake/snowpark_connect/utils/external_udxf_cache.py +36 -0
  19. snowpark_connect-0.26.0/src/snowflake/snowpark_connect/utils/scala_udf_utils.py +596 -0
  20. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/session.py +4 -0
  21. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udf_utils.py +7 -17
  22. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udtf_utils.py +3 -16
  23. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/version.py +1 -1
  24. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0/src/snowpark_connect.egg-info}/PKG-INFO +1 -1
  25. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowpark_connect.egg-info/SOURCES.txt +4 -0
  26. snowpark_connect-0.25.0/src/snowflake/snowpark_connect/utils/scala_udf_utils.py +0 -588
  27. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/LICENSE-binary +0 -0
  28. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/LICENSE.txt +0 -0
  29. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/NOTICE-binary +0 -0
  30. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/README.md +0 -0
  31. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/setup.cfg +0 -0
  32. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/setup.py +0 -0
  33. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/__init__.py +0 -0
  34. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/analyze_plan/__init__.py +0 -0
  35. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/analyze_plan/map_tree_string.py +0 -0
  36. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/column_name_handler.py +0 -0
  37. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/constants.py +0 -0
  38. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/control_server.py +0 -0
  39. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/dataframe_name_handler.py +0 -0
  40. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/date_time_format_mapping.py +0 -0
  41. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/empty_dataframe.py +0 -0
  42. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/error/__init__.py +0 -0
  43. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/error/error_mapping.py +0 -0
  44. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/error/error_utils.py +0 -0
  45. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/error/exceptions.py +0 -0
  46. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/execute_plan/__init__.py +0 -0
  47. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/execute_plan/map_execution_command.py +0 -0
  48. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/execute_plan/map_execution_root.py +0 -0
  49. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/execute_plan/utils.py +0 -0
  50. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/__init__.py +0 -0
  51. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/function_defaults.py +0 -0
  52. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/hybrid_column_map.py +0 -0
  53. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/literal.py +0 -0
  54. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_cast.py +0 -0
  55. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_expression.py +0 -0
  56. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_extension.py +0 -0
  57. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_sql_expression.py +0 -0
  58. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_unresolved_attribute.py +0 -0
  59. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_unresolved_extract_value.py +0 -0
  60. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_unresolved_star.py +0 -0
  61. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_update_fields.py +0 -0
  62. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/map_window_function.py +0 -0
  63. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/expression/typer.py +0 -0
  64. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/hidden_column.py +0 -0
  65. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/__init__.py +0 -0
  66. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/antlr4-runtime-4.9.3.jar +0 -0
  67. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-cli-1.5.0.jar +0 -0
  68. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-codec-1.16.1.jar +0 -0
  69. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-collections-3.2.2.jar +0 -0
  70. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-collections4-4.4.jar +0 -0
  71. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-compiler-3.1.9.jar +0 -0
  72. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-compress-1.26.0.jar +0 -0
  73. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-crypto-1.1.0.jar +0 -0
  74. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-dbcp-1.4.jar +0 -0
  75. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-io-2.16.1.jar +0 -0
  76. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-lang-2.6.jar +0 -0
  77. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-lang3-3.12.0.jar +0 -0
  78. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-logging-1.1.3.jar +0 -0
  79. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-math3-3.6.1.jar +0 -0
  80. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-pool-1.5.4.jar +0 -0
  81. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/commons-text-1.10.0.jar +0 -0
  82. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/hadoop-client-api-trimmed-3.3.4.jar +0 -0
  83. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-annotations-2.15.2.jar +0 -0
  84. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-core-2.15.2.jar +0 -0
  85. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-core-asl-1.9.13.jar +0 -0
  86. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-databind-2.15.2.jar +0 -0
  87. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-dataformat-yaml-2.15.2.jar +0 -0
  88. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-datatype-jsr310-2.15.2.jar +0 -0
  89. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/jackson-module-scala_2.12-2.15.2.jar +0 -0
  90. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/json4s-ast_2.12-3.7.0-M11.jar +0 -0
  91. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/json4s-core_2.12-3.7.0-M11.jar +0 -0
  92. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/json4s-jackson_2.12-3.7.0-M11.jar +0 -0
  93. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/json4s-scalap_2.12-3.7.0-M11.jar +0 -0
  94. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/kryo-shaded-4.0.2.jar +0 -0
  95. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/log4j-1.2-api-2.20.0.jar +0 -0
  96. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/log4j-api-2.20.0.jar +0 -0
  97. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/log4j-core-2.20.0.jar +0 -0
  98. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/log4j-slf4j2-impl-2.20.0.jar +0 -0
  99. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/paranamer-2.8.jar +0 -0
  100. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/scala-collection-compat_2.12-2.7.0.jar +0 -0
  101. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/scala-library-2.12.18.jar +0 -0
  102. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/scala-parser-combinators_2.12-2.3.0.jar +0 -0
  103. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/scala-reflect-2.12.18.jar +0 -0
  104. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/scala-xml_2.12-2.1.0.jar +0 -0
  105. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/slf4j-api-2.0.7.jar +0 -0
  106. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-catalyst_2.12-3.5.6.jar +0 -0
  107. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-common-utils_2.12-3.5.6.jar +0 -0
  108. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-connect-client-jvm_2.12-3.5.6.jar +0 -0
  109. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-core_2.12-3.5.6.jar +0 -0
  110. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-graphx_2.12-3.5.6.jar +0 -0
  111. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-hive-thriftserver_2.12-3.5.6.jar +0 -0
  112. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-hive_2.12-3.5.6.jar +0 -0
  113. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-kvstore_2.12-3.5.6.jar +0 -0
  114. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-launcher_2.12-3.5.6.jar +0 -0
  115. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-mesos_2.12-3.5.6.jar +0 -0
  116. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-mllib-local_2.12-3.5.6.jar +0 -0
  117. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-network-common_2.12-3.5.6.jar +0 -0
  118. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-network-shuffle_2.12-3.5.6.jar +0 -0
  119. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-repl_2.12-3.5.6.jar +0 -0
  120. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-sketch_2.12-3.5.6.jar +0 -0
  121. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-sql-api_2.12-3.5.6.jar +0 -0
  122. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-sql_2.12-3.5.6.jar +0 -0
  123. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-tags_2.12-3.5.6.jar +0 -0
  124. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-unsafe_2.12-3.5.6.jar +0 -0
  125. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/jars/spark-yarn_2.12-3.5.6.jar +0 -0
  126. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/__init__.py +0 -0
  127. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/__init__.py +0 -0
  128. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/_globals.py +0 -0
  129. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/_typing.pyi +0 -0
  130. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/accumulators.py +0 -0
  131. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/broadcast.py +0 -0
  132. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/__init__.py +0 -0
  133. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/cloudpickle.py +0 -0
  134. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/cloudpickle_fast.py +0 -0
  135. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/cloudpickle/compat.py +0 -0
  136. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/conf.py +0 -0
  137. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/context.py +0 -0
  138. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/daemon.py +0 -0
  139. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/__init__.py +0 -0
  140. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/error_classes.py +0 -0
  141. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/__init__.py +0 -0
  142. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/base.py +0 -0
  143. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/captured.py +0 -0
  144. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/exceptions/connect.py +0 -0
  145. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/errors/utils.py +0 -0
  146. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/files.py +0 -0
  147. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/find_spark_home.py +0 -0
  148. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/install.py +0 -0
  149. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/instrumentation_utils.py +0 -0
  150. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/java_gateway.py +0 -0
  151. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/join.py +0 -0
  152. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/__init__.py +0 -0
  153. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/_typing.pyi +0 -0
  154. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/base.py +0 -0
  155. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/classification.py +0 -0
  156. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/clustering.py +0 -0
  157. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/common.py +0 -0
  158. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/__init__.py +0 -0
  159. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/base.py +0 -0
  160. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/classification.py +0 -0
  161. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/evaluation.py +0 -0
  162. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/feature.py +0 -0
  163. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/functions.py +0 -0
  164. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/io_utils.py +0 -0
  165. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/pipeline.py +0 -0
  166. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/summarizer.py +0 -0
  167. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/tuning.py +0 -0
  168. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/connect/util.py +0 -0
  169. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/deepspeed/__init__.py +0 -0
  170. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/deepspeed/deepspeed_distributor.py +0 -0
  171. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/dl_util.py +0 -0
  172. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/evaluation.py +0 -0
  173. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/feature.py +0 -0
  174. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/fpm.py +0 -0
  175. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/functions.py +0 -0
  176. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/image.py +0 -0
  177. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/linalg/__init__.py +0 -0
  178. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/model_cache.py +0 -0
  179. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/__init__.py +0 -0
  180. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/_shared_params_code_gen.py +0 -0
  181. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/param/shared.py +0 -0
  182. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/pipeline.py +0 -0
  183. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/recommendation.py +0 -0
  184. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/regression.py +0 -0
  185. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/stat.py +0 -0
  186. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/__init__.py +0 -0
  187. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/data.py +0 -0
  188. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/distributor.py +0 -0
  189. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/log_communication.py +0 -0
  190. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/torch/torch_run_process_wrapper.py +0 -0
  191. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/tree.py +0 -0
  192. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/tuning.py +0 -0
  193. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/util.py +0 -0
  194. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/ml/wrapper.py +0 -0
  195. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/__init__.py +0 -0
  196. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/_typing.pyi +0 -0
  197. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/classification.py +0 -0
  198. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/clustering.py +0 -0
  199. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/common.py +0 -0
  200. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/evaluation.py +0 -0
  201. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/feature.py +0 -0
  202. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/fpm.py +0 -0
  203. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/linalg/__init__.py +0 -0
  204. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/linalg/distributed.py +0 -0
  205. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/random.py +0 -0
  206. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/recommendation.py +0 -0
  207. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/regression.py +0 -0
  208. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/KernelDensity.py +0 -0
  209. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/__init__.py +0 -0
  210. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/_statistics.py +0 -0
  211. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/distribution.py +0 -0
  212. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/stat/test.py +0 -0
  213. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/tree.py +0 -0
  214. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/mllib/util.py +0 -0
  215. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/__init__.py +0 -0
  216. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/_typing.py +0 -0
  217. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/accessors.py +0 -0
  218. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/base.py +0 -0
  219. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/categorical.py +0 -0
  220. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/config.py +0 -0
  221. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/correlation.py +0 -0
  222. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/__init__.py +0 -0
  223. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/base.py +0 -0
  224. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/binary_ops.py +0 -0
  225. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/boolean_ops.py +0 -0
  226. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/categorical_ops.py +0 -0
  227. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/complex_ops.py +0 -0
  228. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/date_ops.py +0 -0
  229. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/datetime_ops.py +0 -0
  230. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/null_ops.py +0 -0
  231. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/num_ops.py +0 -0
  232. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/string_ops.py +0 -0
  233. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/timedelta_ops.py +0 -0
  234. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/data_type_ops/udt_ops.py +0 -0
  235. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/datetimes.py +0 -0
  236. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/exceptions.py +0 -0
  237. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/extensions.py +0 -0
  238. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/frame.py +0 -0
  239. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/generic.py +0 -0
  240. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/groupby.py +0 -0
  241. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/__init__.py +0 -0
  242. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/base.py +0 -0
  243. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/category.py +0 -0
  244. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/datetimes.py +0 -0
  245. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/multi.py +0 -0
  246. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/numeric.py +0 -0
  247. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexes/timedelta.py +0 -0
  248. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/indexing.py +0 -0
  249. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/internal.py +0 -0
  250. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/__init__.py +0 -0
  251. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/common.py +0 -0
  252. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/frame.py +0 -0
  253. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/general_functions.py +0 -0
  254. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/groupby.py +0 -0
  255. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/indexes.py +0 -0
  256. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/resample.py +0 -0
  257. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/scalars.py +0 -0
  258. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/series.py +0 -0
  259. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/missing/window.py +0 -0
  260. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/mlflow.py +0 -0
  261. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/namespace.py +0 -0
  262. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/numpy_compat.py +0 -0
  263. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/__init__.py +0 -0
  264. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/core.py +0 -0
  265. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/matplotlib.py +0 -0
  266. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/plot/plotly.py +0 -0
  267. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/resample.py +0 -0
  268. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/series.py +0 -0
  269. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/sql_formatter.py +0 -0
  270. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/sql_processor.py +0 -0
  271. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/strings.py +0 -0
  272. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/supported_api_gen.py +0 -0
  273. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/typedef/__init__.py +0 -0
  274. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/typedef/typehints.py +0 -0
  275. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/usage_logging/__init__.py +0 -0
  276. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/usage_logging/usage_logger.py +0 -0
  277. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/utils.py +0 -0
  278. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/pandas/window.py +0 -0
  279. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/profiler.py +0 -0
  280. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/py.typed +0 -0
  281. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/python/pyspark/shell.py +0 -0
  282. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/rdd.py +0 -0
  283. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/rddsampler.py +0 -0
  284. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/__init__.py +0 -0
  285. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/information.py +0 -0
  286. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/profile.py +0 -0
  287. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/resource/requests.py +0 -0
  288. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/resultiterable.py +0 -0
  289. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/serializers.py +0 -0
  290. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/shell.py +0 -0
  291. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/shuffle.py +0 -0
  292. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/__init__.py +0 -0
  293. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/_typing.pyi +0 -0
  294. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/avro/__init__.py +0 -0
  295. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/avro/functions.py +0 -0
  296. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/catalog.py +0 -0
  297. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/column.py +0 -0
  298. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/conf.py +0 -0
  299. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/__init__.py +0 -0
  300. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/_typing.py +0 -0
  301. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/avro/__init__.py +0 -0
  302. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/avro/functions.py +0 -0
  303. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/catalog.py +0 -0
  304. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/__init__.py +0 -0
  305. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/artifact.py +0 -0
  306. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/core.py +0 -0
  307. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/client/reattach.py +0 -0
  308. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/column.py +0 -0
  309. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/conf.py +0 -0
  310. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/conversion.py +0 -0
  311. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/dataframe.py +0 -0
  312. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/expressions.py +0 -0
  313. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/functions.py +0 -0
  314. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/group.py +0 -0
  315. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/plan.py +0 -0
  316. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/__init__.py +0 -0
  317. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2.py +0 -0
  318. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2.pyi +0 -0
  319. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/base_pb2_grpc.py +0 -0
  320. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/catalog_pb2.py +0 -0
  321. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/catalog_pb2.pyi +0 -0
  322. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/commands_pb2.py +0 -0
  323. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/commands_pb2.pyi +0 -0
  324. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/common_pb2.py +0 -0
  325. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/common_pb2.pyi +0 -0
  326. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/example_plugins_pb2.py +0 -0
  327. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/example_plugins_pb2.pyi +0 -0
  328. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/expressions_pb2.py +0 -0
  329. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/expressions_pb2.pyi +0 -0
  330. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/relations_pb2.py +0 -0
  331. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/relations_pb2.pyi +0 -0
  332. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/types_pb2.py +0 -0
  333. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/proto/types_pb2.pyi +0 -0
  334. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/protobuf/__init__.py +0 -0
  335. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/protobuf/functions.py +0 -0
  336. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/readwriter.py +0 -0
  337. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/session.py +0 -0
  338. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/__init__.py +0 -0
  339. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/query.py +0 -0
  340. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/readwriter.py +0 -0
  341. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/__init__.py +0 -0
  342. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/foreach_batch_worker.py +0 -0
  343. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/streaming/worker/listener_worker.py +0 -0
  344. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/types.py +0 -0
  345. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/udf.py +0 -0
  346. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/udtf.py +0 -0
  347. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/utils.py +0 -0
  348. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/connect/window.py +0 -0
  349. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/context.py +0 -0
  350. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/dataframe.py +0 -0
  351. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/functions.py +0 -0
  352. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/group.py +0 -0
  353. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/observation.py +0 -0
  354. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/__init__.py +0 -0
  355. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/__init__.pyi +0 -0
  356. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/__init__.pyi +0 -0
  357. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/frame.pyi +0 -0
  358. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/_typing/protocols/series.pyi +0 -0
  359. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/conversion.py +0 -0
  360. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/functions.py +0 -0
  361. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/functions.pyi +0 -0
  362. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/group_ops.py +0 -0
  363. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/map_ops.py +0 -0
  364. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/serializers.py +0 -0
  365. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/typehints.py +0 -0
  366. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/types.py +0 -0
  367. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/pandas/utils.py +0 -0
  368. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/protobuf/__init__.py +0 -0
  369. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/protobuf/functions.py +0 -0
  370. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/readwriter.py +0 -0
  371. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/session.py +0 -0
  372. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/sql_formatter.py +0 -0
  373. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/__init__.py +0 -0
  374. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/listener.py +0 -0
  375. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/query.py +0 -0
  376. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/readwriter.py +0 -0
  377. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/streaming/state.py +0 -0
  378. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/types.py +0 -0
  379. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/udf.py +0 -0
  380. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/udtf.py +0 -0
  381. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/utils.py +0 -0
  382. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/sql/window.py +0 -0
  383. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/statcounter.py +0 -0
  384. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/status.py +0 -0
  385. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/storagelevel.py +0 -0
  386. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/__init__.py +0 -0
  387. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/context.py +0 -0
  388. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/dstream.py +0 -0
  389. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/kinesis.py +0 -0
  390. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/listener.py +0 -0
  391. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/streaming/util.py +0 -0
  392. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/taskcontext.py +0 -0
  393. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/__init__.py +0 -0
  394. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/connectutils.py +0 -0
  395. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/mllibutils.py +0 -0
  396. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/mlutils.py +0 -0
  397. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/objects.py +0 -0
  398. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/pandasutils.py +0 -0
  399. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/sqlutils.py +0 -0
  400. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/streamingutils.py +0 -0
  401. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/testing/utils.py +0 -0
  402. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/traceback_utils.py +0 -0
  403. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/util.py +0 -0
  404. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/version.py +0 -0
  405. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/worker.py +0 -0
  406. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/includes/python/pyspark/worker_util.py +0 -0
  407. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/__init__.py +0 -0
  408. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/control_pb2.py +0 -0
  409. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/control_pb2.pyi +0 -0
  410. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/control_pb2_grpc.py +0 -0
  411. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +0 -0
  412. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +0 -0
  413. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/snowflake_rdd_pb2.pyi +0 -0
  414. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +0 -0
  415. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +0 -0
  416. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/__init__.py +0 -0
  417. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/catalogs/__init__.py +0 -0
  418. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +0 -0
  419. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +0 -0
  420. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/catalogs/utils.py +0 -0
  421. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/io_utils.py +0 -0
  422. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_aggregate.py +0 -0
  423. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_catalog.py +0 -0
  424. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_column_ops.py +0 -0
  425. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_crosstab.py +0 -0
  426. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_extension.py +0 -0
  427. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_join.py +0 -0
  428. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_local_relation.py +0 -0
  429. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_sample_by.py +0 -0
  430. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_show_string.py +0 -0
  431. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_sql.py +0 -0
  432. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_stats.py +0 -0
  433. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/map_subquery_alias.py +0 -0
  434. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/__init__.py +0 -0
  435. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py +0 -0
  436. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read.py +0 -0
  437. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_csv.py +0 -0
  438. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_jdbc.py +0 -0
  439. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_json.py +0 -0
  440. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_parquet.py +0 -0
  441. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_socket.py +0 -0
  442. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_table.py +0 -0
  443. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/map_read_text.py +0 -0
  444. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/reader_config.py +0 -0
  445. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/read/utils.py +0 -0
  446. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/stage_locator.py +0 -0
  447. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/write/__init__.py +0 -0
  448. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +0 -0
  449. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/relation/write/map_write_jdbc.py +0 -0
  450. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar +0 -0
  451. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/start_server.py +0 -0
  452. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/tcm.py +0 -0
  453. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/type_mapping.py +0 -0
  454. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/typed_column.py +0 -0
  455. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/__init__.py +0 -0
  456. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/artifacts.py +0 -0
  457. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/cache.py +0 -0
  458. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/context.py +0 -0
  459. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/describe_query_cache.py +0 -0
  460. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/env_utils.py +0 -0
  461. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/identifiers.py +0 -0
  462. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/interrupt.py +0 -0
  463. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/io_utils.py +0 -0
  464. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/pandas_udtf_utils.py +0 -0
  465. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/profiling.py +0 -0
  466. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/snowpark_connect_logging.py +0 -0
  467. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/telemetry.py +0 -0
  468. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udf_cache.py +0 -0
  469. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udf_helper.py +0 -0
  470. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udtf_helper.py +0 -0
  471. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/udxf_import_utils.py +0 -0
  472. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_connect/utils/xxhash64.py +0 -0
  473. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_decoder/__init__.py +0 -0
  474. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py +0 -0
  475. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi +0 -0
  476. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_decoder/dp_session.py +0 -0
  477. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowflake/snowpark_decoder/spark_decoder.py +0 -0
  478. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowpark_connect.egg-info/dependency_links.txt +0 -0
  479. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowpark_connect.egg-info/requires.txt +0 -0
  480. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/snowpark_connect.egg-info/top_level.txt +0 -0
  481. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/spark/__init__.py +0 -0
  482. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/spark/connect/__init__.py +0 -0
  483. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/spark/connect/envelope_pb2.py +0 -0
  484. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/src/spark/connect/envelope_pb2.pyi +0 -0
  485. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/tools/snowpark-connect +0 -0
  486. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/tools/snowpark-session +0 -0
  487. {snowpark_connect-0.25.0 → snowpark_connect-0.26.0}/tools/snowpark-submit +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowpark-connect
3
- Version: 0.25.0
3
+ Version: 0.26.0
4
4
  Summary: Snowpark Connect for Spark
5
5
  Author: Snowflake, Inc
6
6
  License: Apache License, Version 2.0
@@ -22,6 +22,9 @@ from snowflake.snowpark.exceptions import SnowparkSQLException
22
22
  from snowflake.snowpark.types import TimestampTimeZone, TimestampType
23
23
  from snowflake.snowpark_connect.utils.concurrent import SynchronizedDict
24
24
  from snowflake.snowpark_connect.utils.context import get_session_id
25
+ from snowflake.snowpark_connect.utils.external_udxf_cache import (
26
+ clear_external_udxf_cache,
27
+ )
25
28
  from snowflake.snowpark_connect.utils.session import get_or_create_snowpark_session
26
29
  from snowflake.snowpark_connect.utils.snowpark_connect_logging import logger
27
30
  from snowflake.snowpark_connect.utils.telemetry import (
@@ -136,6 +139,9 @@ class GlobalConfig:
136
139
  "spark.sql.parser.quotedRegexColumnNames": "false",
137
140
  # custom configs
138
141
  "snowpark.connect.version": ".".join(map(str, sas_version)),
142
+ # Control whether repartition(n) on a DataFrame forces splitting into n files during writes
143
+ # This matches spark behavior more closely, but introduces overhead.
144
+ "snowflake.repartition.for.writes": "false",
139
145
  }
140
146
 
141
147
  boolean_config_list = [
@@ -148,6 +154,7 @@ class GlobalConfig:
148
154
  "spark.sql.legacy.allowHashOnMapType",
149
155
  "spark.Catalog.databaseFilterInformationSchema",
150
156
  "spark.sql.parser.quotedRegexColumnNames",
157
+ "snowflake.repartition.for.writes",
151
158
  ]
152
159
 
153
160
  int_config_list = [
@@ -592,6 +599,9 @@ def parse_imports(session: snowpark.Session, imports: str | None) -> None:
592
599
  if not imports:
593
600
  return
594
601
 
602
+ # UDF needs to be recreated to include new imports
603
+ clear_external_udxf_cache(session)
604
+
595
605
  for udf_import in imports.strip("[] ").split(","):
596
606
  session.add_import(udf_import)
597
607
 
@@ -29,6 +29,7 @@ class DataFrameContainer:
29
29
  table_name: str | None = None,
30
30
  alias: str | None = None,
31
31
  cached_schema_getter: Callable[[], StructType] | None = None,
32
+ partition_hint: int | None = None,
32
33
  ) -> None:
33
34
  """
34
35
  Initialize a new DataFrameContainer.
@@ -39,11 +40,13 @@ class DataFrameContainer:
39
40
  table_name: Optional table name for the DataFrame
40
41
  alias: Optional alias for the DataFrame
41
42
  cached_schema_getter: Optional function to get cached schema
43
+ partition_hint: Optional partition count from repartition() operations
42
44
  """
43
45
  self._dataframe = dataframe
44
46
  self._column_map = self._create_default_column_map(column_map)
45
47
  self._table_name = table_name
46
48
  self._alias = alias
49
+ self._partition_hint = partition_hint
47
50
 
48
51
  if cached_schema_getter is not None:
49
52
  self._apply_cached_schema_getter(cached_schema_getter)
@@ -62,6 +65,7 @@ class DataFrameContainer:
62
65
  table_name: str | None = None,
63
66
  alias: str | None = None,
64
67
  cached_schema_getter: Callable[[], StructType] | None = None,
68
+ partition_hint: int | None = None,
65
69
  ) -> DataFrameContainer:
66
70
  """
67
71
  Create a new container with complete column mapping configuration.
@@ -78,6 +82,7 @@ class DataFrameContainer:
78
82
  table_name: Optional table name
79
83
  alias: Optional alias
80
84
  cached_schema_getter: Optional function to get cached schema
85
+ partition_hint: Optional partition count from repartition() operations
81
86
 
82
87
  Returns:
83
88
  A new DataFrameContainer instance
@@ -123,6 +128,7 @@ class DataFrameContainer:
123
128
  table_name=table_name,
124
129
  alias=alias,
125
130
  cached_schema_getter=final_schema_getter,
131
+ partition_hint=partition_hint,
126
132
  )
127
133
 
128
134
  @property
@@ -163,6 +169,16 @@ class DataFrameContainer:
163
169
  """Set the alias name."""
164
170
  self._alias = value
165
171
 
172
+ @property
173
+ def partition_hint(self) -> int | None:
174
+ """Get the partition hint count."""
175
+ return self._partition_hint
176
+
177
+ @partition_hint.setter
178
+ def partition_hint(self, value: int | None) -> None:
179
+ """Set the partition hint count."""
180
+ self._partition_hint = value
181
+
166
182
  def _create_default_column_map(
167
183
  self, column_map: ColumnNameMap | None
168
184
  ) -> ColumnNameMap:
@@ -13,6 +13,10 @@ from snowflake.snowpark_connect.config import global_config
13
13
  from snowflake.snowpark_connect.expression.typer import ExpressionTyper
14
14
  from snowflake.snowpark_connect.type_mapping import proto_to_snowpark_type
15
15
  from snowflake.snowpark_connect.typed_column import TypedColumn
16
+ from snowflake.snowpark_connect.utils.external_udxf_cache import (
17
+ cache_external_udf,
18
+ get_external_udf_from_cache,
19
+ )
16
20
  from snowflake.snowpark_connect.utils.session import get_or_create_snowpark_session
17
21
  from snowflake.snowpark_connect.utils.udf_helper import (
18
22
  SnowparkUDF,
@@ -30,6 +34,39 @@ from snowflake.snowpark_connect.utils.udxf_import_utils import (
30
34
  )
31
35
 
32
36
 
37
+ def cache_external_udf_wrapper(from_register_udf: bool):
38
+ def outer_wrapper(wrapper_func):
39
+ def wrapper(
40
+ udf_proto: expressions_proto.CommonInlineUserDefinedFunction,
41
+ ) -> SnowparkUDF | None:
42
+ udf_hash = hash(str(udf_proto))
43
+ cached_udf = get_external_udf_from_cache(udf_hash)
44
+
45
+ if cached_udf:
46
+ session = get_or_create_snowpark_session()
47
+ function_type = udf_proto.WhichOneof("function")
48
+ # TODO: Align this with SNOW-2316798 after merge
49
+ match function_type:
50
+ case "scalar_scala_udf":
51
+ session._udfs[cached_udf.name] = cached_udf
52
+ case "python_udf" if from_register_udf:
53
+ session._udfs[udf_proto.function_name.lower()] = cached_udf
54
+ case "python_udf":
55
+ pass
56
+ case _:
57
+ raise ValueError(f"Unsupported UDF type: {function_type}")
58
+
59
+ return cached_udf
60
+
61
+ snowpark_udf = wrapper_func(udf_proto)
62
+ cache_external_udf(udf_hash, snowpark_udf)
63
+ return snowpark_udf
64
+
65
+ return wrapper
66
+
67
+ return outer_wrapper
68
+
69
+
33
70
  def process_udf_return_type(
34
71
  return_type: types_proto.DataType,
35
72
  ) -> tuple[snowpark.types.DataType, snowpark.types.DataType]:
@@ -49,6 +86,7 @@ def process_udf_return_type(
49
86
  return original_snowpark_type, original_snowpark_type
50
87
 
51
88
 
89
+ @cache_external_udf_wrapper(from_register_udf=True)
52
90
  def register_udf(
53
91
  udf_proto: expressions_proto.CommonInlineUserDefinedFunction,
54
92
  ) -> SnowparkUDF:
@@ -84,12 +122,10 @@ def register_udf(
84
122
  return_type=udf._return_type,
85
123
  original_return_type=original_return_type,
86
124
  )
87
- # the create udf does register the udf but this seems to be for the client side check
88
- # TODO: check if this is needed
125
+ session._udfs[udf_proto.function_name.lower()] = udf
126
+ # scala udfs can be also accessed using `udf.name`
89
127
  if udf_processor._function_type == "scalar_scala_udf":
90
128
  session._udfs[udf.name] = udf
91
- else:
92
- session._udfs[udf_proto.function_name.lower()] = udf
93
129
  return udf
94
130
 
95
131
 
@@ -114,29 +150,34 @@ def map_common_inline_user_defined_udf(
114
150
  udf_proto.scalar_scala_udf.outputType
115
151
  )
116
152
 
117
- session = get_or_create_snowpark_session()
118
- kwargs = {
119
- "common_inline_user_defined_function": udf_proto,
120
- "input_types": input_types,
121
- "called_from": "map_common_inline_user_defined_udf",
122
- "return_type": processed_return_type,
123
- "udf_packages": global_config.get("snowpark.connect.udf.packages", ""),
124
- "udf_imports": get_python_udxf_import_files(session),
125
- "original_return_type": original_return_type,
126
- }
127
- if require_creating_udf_in_sproc(udf_proto):
128
- snowpark_udf = process_udf_in_sproc(**kwargs)
129
- else:
130
- udf_processor = ProcessCommonInlineUserDefinedFunction(**kwargs)
131
- udf = udf_processor.create_udf()
132
- snowpark_udf = SnowparkUDF(
133
- name=udf.name,
134
- input_types=udf._input_types,
135
- return_type=udf._return_type,
136
- original_return_type=original_return_type,
137
- )
138
- if udf_processor._function_type == "scalar_scala_udf":
139
- session._udfs[udf.name] = snowpark_udf
153
+ @cache_external_udf_wrapper(from_register_udf=False)
154
+ def get_snowpark_udf(
155
+ udf_proto: expressions_proto.CommonInlineUserDefinedFunction,
156
+ ) -> SnowparkUDF:
157
+ session = get_or_create_snowpark_session()
158
+ kwargs = {
159
+ "common_inline_user_defined_function": udf_proto,
160
+ "input_types": input_types,
161
+ "called_from": "map_common_inline_user_defined_udf",
162
+ "return_type": processed_return_type,
163
+ "udf_packages": global_config.get("snowpark.connect.udf.packages", ""),
164
+ "udf_imports": get_python_udxf_import_files(session),
165
+ "original_return_type": original_return_type,
166
+ }
167
+ if require_creating_udf_in_sproc(udf_proto):
168
+ snowpark_udf = process_udf_in_sproc(**kwargs)
169
+ else:
170
+ udf_processor = ProcessCommonInlineUserDefinedFunction(**kwargs)
171
+ udf = udf_processor.create_udf()
172
+ snowpark_udf = SnowparkUDF(
173
+ name=udf.name,
174
+ input_types=udf._input_types,
175
+ return_type=udf._return_type,
176
+ original_return_type=original_return_type,
177
+ )
178
+ return snowpark_udf
179
+
180
+ snowpark_udf = get_snowpark_udf(udf_proto)
140
181
  udf_call_expr = snowpark_fn.call_udf(snowpark_udf.name, *snowpark_udf_args)
141
182
 
142
183
  # If the original return type was MapType or StructType but we converted it to VariantType,
@@ -476,11 +476,8 @@ def map_unresolved_function(
476
476
  return TypedColumn(result, lambda: expected_types)
477
477
 
478
478
  match function_name:
479
- case func_name if (
480
- get_is_evaluating_sql() and func_name.lower() in session._udfs
481
- ):
482
- # TODO: In Spark, UDFs can override built-in functions in SQL,
483
- # but not in DataFrame ops.
479
+ case func_name if func_name.lower() in session._udfs:
480
+ # In Spark, UDFs can override built-in functions
484
481
  udf = session._udfs[func_name.lower()]
485
482
  result_exp = snowpark_fn.call_udf(
486
483
  udf.name,
@@ -6479,6 +6476,18 @@ def map_unresolved_function(
6479
6476
  if pattern_value is None:
6480
6477
  return snowpark_fn.lit(None)
6481
6478
 
6479
+ # Optimization: treat escaped regex that resolves to a pure literal delimiter
6480
+ # - Single char: "\\."
6481
+ # - Multi char: e.g., "\\.505\\."
6482
+ if re.fullmatch(r"(?:\\.)+", pattern_value):
6483
+ literal_delim = re.sub(r"\\(.)", r"\1", pattern_value)
6484
+ return snowpark_fn.when(
6485
+ limit <= 0,
6486
+ snowpark_fn.split(
6487
+ str_, snowpark_fn.lit(literal_delim)
6488
+ ).cast(result_type),
6489
+ ).otherwise(native_split)
6490
+
6482
6491
  is_regexp = re.match(
6483
6492
  ".*[\\[\\.\\]\\*\\?\\+\\^\\$\\{\\}\\|\\(\\)\\\\].*",
6484
6493
  pattern_value,
@@ -8285,15 +8294,6 @@ def map_unresolved_function(
8285
8294
  ),
8286
8295
  )
8287
8296
  result_type = BinaryType()
8288
- case udf_name if udf_name.lower() in session._udfs:
8289
- # TODO: In Spark, UDFs can override built-in functions in SQL,
8290
- # but not in DataFrame ops.
8291
- udf = session._udfs[udf_name.lower()]
8292
- result_exp = snowpark_fn.call_udf(
8293
- udf.name,
8294
- *(snowpark_fn.cast(arg, VariantType()) for arg in snowpark_args),
8295
- )
8296
- result_type = udf.return_type
8297
8297
  case udtf_name if udtf_name.lower() in session._udtfs:
8298
8298
  udtf, spark_col_names = session._udtfs[udtf_name.lower()]
8299
8299
  result_exp = snowpark_fn.call_table_function(
@@ -9623,13 +9623,14 @@ def _get_decimal_division_result_exp(
9623
9623
  snowpark_args: list[Column],
9624
9624
  spark_function_name: str,
9625
9625
  ) -> Column:
9626
- if isinstance(other_type, DecimalType) and overflow_detected:
9627
- if global_config.spark_sql_ansi_enabled:
9628
- raise ArithmeticException(
9629
- f'[NUMERIC_VALUE_OUT_OF_RANGE] {spark_function_name} cannot be represented as Decimal({result_type.precision}, {result_type.scale}). If necessary set "spark.sql.ansi.enabled" to "false" to bypass this error, and return NULL instead.'
9630
- )
9631
- else:
9632
- result_exp = snowpark_fn.lit(None).cast(result_type)
9626
+ if (
9627
+ isinstance(other_type, DecimalType)
9628
+ and overflow_detected
9629
+ and global_config.spark_sql_ansi_enabled
9630
+ ):
9631
+ raise ArithmeticException(
9632
+ f'[NUMERIC_VALUE_OUT_OF_RANGE] {spark_function_name} cannot be represented as Decimal({result_type.precision}, {result_type.scale}). If necessary set "spark.sql.ansi.enabled" to "false" to bypass this error, and return NULL instead.'
9633
+ )
9633
9634
  else:
9634
9635
  dividend = snowpark_args[0].cast(DoubleType())
9635
9636
  divisor = snowpark_args[1]
@@ -46,9 +46,10 @@ def map_map_partitions(
46
46
  udf_check(udf_proto)
47
47
 
48
48
  # Check if this is mapInArrow (eval_type == 207)
49
- eval_type = udf_proto.python_udf.eval_type
50
-
51
- if eval_type == MAP_IN_ARROW_EVAL_TYPE:
49
+ if (
50
+ udf_proto.WhichOneof("function") == "python_udf"
51
+ and udf_proto.python_udf.eval_type == MAP_IN_ARROW_EVAL_TYPE
52
+ ):
52
53
  return _map_in_arrow_with_pandas_udtf(input_container, udf_proto)
53
54
  else:
54
55
  return _map_partitions_with_udf(input_df, udf_proto)
@@ -126,7 +127,11 @@ def _map_partitions_with_udf(
126
127
  "udf_name": "spark_map_partitions_udf",
127
128
  "input_column_names": input_column_names,
128
129
  "replace": True,
129
- "return_type": proto_to_snowpark_type(udf_proto.python_udf.output_type),
130
+ "return_type": proto_to_snowpark_type(
131
+ udf_proto.python_udf.output_type
132
+ if udf_proto.WhichOneof("function") == "python_udf"
133
+ else udf_proto.scalar_scala_udf.outputType
134
+ ),
130
135
  "udf_packages": global_config.get("snowpark.connect.udf.packages", ""),
131
136
  "udf_imports": get_python_udxf_import_files(input_df.session),
132
137
  }
@@ -90,6 +90,7 @@ def map_relation(
90
90
  table_name=copy.deepcopy(cached_container.table_name),
91
91
  alias=cached_container.alias,
92
92
  cached_schema_getter=lambda: cached_df.schema,
93
+ partition_hint=cached_container.partition_hint,
93
94
  )
94
95
  # If we don't make a copy of the df._output, the expression IDs for attributes in Snowpark DataFrames will differ from those stored in the cache,
95
96
  # leading to errors during query execution.
@@ -189,13 +190,23 @@ def map_relation(
189
190
  case "read":
190
191
  result = read.map_read(rel)
191
192
  case "repartition":
192
- # TODO: Snowpark df identity transform with annotation
193
+ # Preserve partition hint for file output control
194
+ # This handles both repartition(n) with shuffle=True and coalesce(n) with shuffle=False
193
195
  result = map_relation(rel.repartition.input)
196
+ if rel.repartition.num_partitions > 0:
197
+ result.partition_hint = rel.repartition.num_partitions
194
198
  case "repartition_by_expression":
195
199
  # This is a no-op operation in SAS as Snowpark doesn't have the concept of partitions.
196
200
  # All the data in the dataframe will be treated as a single partition, and this will not
197
201
  # have any side effects.
198
202
  result = map_relation(rel.repartition_by_expression.input)
203
+ # Only preserve partition hint if num_partitions is explicitly specified and > 0
204
+ # Column-based repartitioning without count should clear any existing partition hints
205
+ if rel.repartition_by_expression.num_partitions > 0:
206
+ result.partition_hint = rel.repartition_by_expression.num_partitions
207
+ else:
208
+ # Column-based repartitioning clears partition hint (resets to default behavior)
209
+ result.partition_hint = None
199
210
  case "replace":
200
211
  result = map_row_ops.map_replace(rel)
201
212
  case "sample":
@@ -553,7 +553,14 @@ def map_filter(
553
553
  rel.filter.condition, input_container.column_map, typer
554
554
  )
555
555
 
556
- result = input_df.filter(condition.col)
556
+ if rel.filter.input.WhichOneof("rel_type") == "subquery_alias":
557
+ # map_subquery_alias does not actually wrap the DataFrame in an alias or subquery.
558
+ # Apparently, there are cases (e.g., TpcdsQ53) where this is required, without it, we get
559
+ # SQL compilation error.
560
+ # To mitigate it, we are doing .select("*"), .alias() introduces additional describe queries
561
+ result = input_df.select("*").filter(condition.col)
562
+ else:
563
+ result = input_df.filter(condition.col)
557
564
 
558
565
  return DataFrameContainer(
559
566
  result,
@@ -31,6 +31,10 @@ from snowflake.snowpark_connect.type_mapping import (
31
31
  proto_to_snowpark_type,
32
32
  )
33
33
  from snowflake.snowpark_connect.utils.context import push_udtf_context
34
+ from snowflake.snowpark_connect.utils.external_udxf_cache import (
35
+ cache_external_udtf,
36
+ get_external_udtf_from_cache,
37
+ )
34
38
  from snowflake.snowpark_connect.utils.session import get_or_create_snowpark_session
35
39
  from snowflake.snowpark_connect.utils.udtf_helper import (
36
40
  SnowparkUDTF,
@@ -44,6 +48,34 @@ from snowflake.snowpark_connect.utils.udxf_import_utils import (
44
48
  )
45
49
 
46
50
 
51
+ def cache_external_udtf_wrapper(from_register_udtf: bool):
52
+ def outer_wrapper(wrapper_func):
53
+ def wrapper(
54
+ udtf_proto: relation_proto.CommonInlineUserDefinedTableFunction,
55
+ spark_column_names,
56
+ ) -> SnowparkUDTF | None:
57
+ udf_hash = hash(str(udtf_proto))
58
+ cached_udtf = get_external_udtf_from_cache(udf_hash)
59
+
60
+ if cached_udtf:
61
+ if from_register_udtf:
62
+ session = get_or_create_snowpark_session()
63
+ session._udtfs[udtf_proto.function_name.lower()] = (
64
+ cached_udtf,
65
+ spark_column_names,
66
+ )
67
+
68
+ return cached_udtf
69
+
70
+ snowpark_udf = wrapper_func(udtf_proto, spark_column_names)
71
+ cache_external_udtf(udf_hash, snowpark_udf)
72
+ return snowpark_udf
73
+
74
+ return wrapper
75
+
76
+ return outer_wrapper
77
+
78
+
47
79
  def build_expected_types_from_parsed(
48
80
  parsed_return: types_proto.DataType,
49
81
  ) -> List[Tuple[str, Any]]:
@@ -165,26 +197,37 @@ def register_udtf(
165
197
  ) = process_return_type(python_udft.return_type)
166
198
  function_name = udtf_proto.function_name
167
199
 
168
- kwargs = {
169
- "session": session,
170
- "udtf_proto": udtf_proto,
171
- "expected_types": expected_types,
172
- "output_schema": output_schema,
173
- "packages": global_config.get("snowpark.connect.udf.packages", ""),
174
- "imports": get_python_udxf_import_files(session),
175
- "called_from": "register_udtf",
176
- "is_arrow_enabled": is_arrow_enabled_in_udtf(),
177
- "is_spark_compatible_udtf_mode_enabled": is_spark_compatible_udtf_mode_enabled(),
178
- }
179
-
180
- if require_creating_udtf_in_sproc(udtf_proto):
181
- snowpark_udtf = create_udtf_in_sproc(**kwargs)
182
- else:
183
- udtf = create_udtf(**kwargs)
184
- snowpark_udtf = SnowparkUDTF(
185
- name=udtf.name, input_types=udtf._input_types, output_schema=output_schema
186
- )
200
+ @cache_external_udtf_wrapper(from_register_udtf=True)
201
+ def _register_udtf(
202
+ udtf_proto: relation_proto.CommonInlineUserDefinedTableFunction,
203
+ spark_column_names,
204
+ ):
205
+ kwargs = {
206
+ "session": session,
207
+ "udtf_proto": udtf_proto,
208
+ "expected_types": expected_types,
209
+ "output_schema": output_schema,
210
+ "packages": global_config.get("snowpark.connect.udf.packages", ""),
211
+ "imports": get_python_udxf_import_files(session),
212
+ "called_from": "register_udtf",
213
+ "is_arrow_enabled": is_arrow_enabled_in_udtf(),
214
+ "is_spark_compatible_udtf_mode_enabled": is_spark_compatible_udtf_mode_enabled(),
215
+ }
216
+
217
+ if require_creating_udtf_in_sproc(udtf_proto):
218
+ snowpark_udtf = create_udtf_in_sproc(**kwargs)
219
+ else:
220
+ udtf = create_udtf(**kwargs)
221
+ snowpark_udtf = SnowparkUDTF(
222
+ name=udtf.name,
223
+ input_types=udtf._input_types,
224
+ output_schema=output_schema,
225
+ )
226
+
227
+ return snowpark_udtf
187
228
 
229
+ snowpark_udtf = _register_udtf(udtf_proto, spark_column_names)
230
+ # We have to update cached _udtfs here, because function could have been cached in map_common_inline_user_defined_table_function
188
231
  session._udtfs[function_name.lower()] = (snowpark_udtf, spark_column_names)
189
232
  return snowpark_udtf
190
233
 
@@ -213,32 +256,41 @@ def map_common_inline_user_defined_table_function(
213
256
  spark_column_names,
214
257
  ) = process_return_type(python_udft.return_type)
215
258
 
216
- kwargs = {
217
- "session": session,
218
- "udtf_proto": rel,
219
- "expected_types": expected_types,
220
- "output_schema": output_schema,
221
- "packages": global_config.get("snowpark.connect.udf.packages", ""),
222
- "imports": get_python_udxf_import_files(session),
223
- "called_from": "map_common_inline_user_defined_table_function",
224
- "is_arrow_enabled": is_arrow_enabled_in_udtf(),
225
- "is_spark_compatible_udtf_mode_enabled": is_spark_compatible_udtf_mode_enabled(),
226
- }
227
-
228
- if require_creating_udtf_in_sproc(rel):
229
- snowpark_udtf_or_error = create_udtf_in_sproc(**kwargs)
230
- if isinstance(snowpark_udtf_or_error, str):
231
- raise PythonException(snowpark_udtf_or_error)
232
- snowpark_udtf = snowpark_udtf_or_error
233
- else:
234
- udtf_or_error = create_udtf(**kwargs)
235
- if isinstance(udtf_or_error, str):
236
- raise PythonException(udtf_or_error)
237
- udtf = udtf_or_error
238
- snowpark_udtf = SnowparkUDTF(
239
- name=udtf.name, input_types=udtf._input_types, output_schema=output_schema
240
- )
259
+ @cache_external_udtf_wrapper(from_register_udtf=False)
260
+ def _get_udtf(
261
+ udtf_proto: relation_proto.CommonInlineUserDefinedTableFunction,
262
+ spark_column_names,
263
+ ):
264
+ kwargs = {
265
+ "session": session,
266
+ "udtf_proto": udtf_proto,
267
+ "expected_types": expected_types,
268
+ "output_schema": output_schema,
269
+ "packages": global_config.get("snowpark.connect.udf.packages", ""),
270
+ "imports": get_python_udxf_import_files(session),
271
+ "called_from": "map_common_inline_user_defined_table_function",
272
+ "is_arrow_enabled": is_arrow_enabled_in_udtf(),
273
+ "is_spark_compatible_udtf_mode_enabled": is_spark_compatible_udtf_mode_enabled(),
274
+ }
275
+
276
+ if require_creating_udtf_in_sproc(udtf_proto):
277
+ snowpark_udtf_or_error = create_udtf_in_sproc(**kwargs)
278
+ if isinstance(snowpark_udtf_or_error, str):
279
+ raise PythonException(snowpark_udtf_or_error)
280
+ snowpark_udtf = snowpark_udtf_or_error
281
+ else:
282
+ udtf_or_error = create_udtf(**kwargs)
283
+ if isinstance(udtf_or_error, str):
284
+ raise PythonException(udtf_or_error)
285
+ udtf = udtf_or_error
286
+ snowpark_udtf = SnowparkUDTF(
287
+ name=udtf.name,
288
+ input_types=udtf._input_types,
289
+ output_schema=output_schema,
290
+ )
291
+ return snowpark_udtf
241
292
 
293
+ snowpark_udtf = _get_udtf(rel, spark_column_names)
242
294
  column_map = ColumnNameMap([], [])
243
295
  snowpark_udtf_args = []
244
296
 
@@ -6,6 +6,7 @@ import random
6
6
  import re
7
7
  import string
8
8
  import time
9
+ import uuid
9
10
  from typing import Sequence
10
11
 
11
12
  import pyspark.sql.connect.proto.relations_pb2 as relation_proto
@@ -153,6 +154,49 @@ def random_string(
153
154
  return "".join([prefix, random_part, suffix])
154
155
 
155
156
 
157
+ def generate_spark_compatible_filename(
158
+ task_id: int = 0,
159
+ attempt_number: int = 0,
160
+ compression: str = None,
161
+ format_ext: str = "parquet",
162
+ ) -> str:
163
+ """Generate a Spark-compatible filename following the convention:
164
+ part-<task-id>-<uuid>-c<attempt-number>.<compression>.<format>
165
+
166
+ Args:
167
+ task_id: Task ID (usually 0 for single partition)
168
+ attempt_number: Attempt number (usually 0)
169
+ compression: Compression type (e.g., 'snappy', 'gzip', 'none')
170
+ format_ext: File format extension (e.g., 'parquet', 'csv', 'json')
171
+
172
+ Returns:
173
+ A filename string following Spark's naming convention
174
+ """
175
+ # Generate a UUID for uniqueness
176
+ file_uuid = str(uuid.uuid4())
177
+
178
+ # Format task ID with leading zeros (5 digits)
179
+ formatted_task_id = f"{task_id:05d}"
180
+
181
+ # Format attempt number with leading zeros (3 digits)
182
+ formatted_attempt = f"{attempt_number:03d}"
183
+
184
+ # Build the base filename
185
+ base_name = f"part-{formatted_task_id}-{file_uuid}-c{formatted_attempt}"
186
+
187
+ # Add compression if specified and not 'none'
188
+ if compression and compression.lower() not in ("none", "uncompressed"):
189
+ compression_part = f".{compression.lower()}"
190
+ else:
191
+ compression_part = ""
192
+
193
+ # Add format extension if specified
194
+ if format_ext:
195
+ return f"{base_name}{compression_part}.{format_ext}"
196
+ else:
197
+ return f"{base_name}{compression_part}"
198
+
199
+
156
200
  def _normalize_query_for_semantic_hash(query_str: str) -> str:
157
201
  """
158
202
  Normalize a query string for semantic comparison by extracting original names from