使用雪花 Spark 连接器从雪花复制表时,默认行为是将结构化数据映射到 Spark 字符串:https://docs.snowflake.net/manuals/user-guide/spark-connector-use.html#from-snowflake-to-spark-sql
例如,给定一个雪花表:
create table schema.table as
select
array_construct('1','a') as array_col,
object_construct('1','a') as obj_col
并将其复制到 pyspark 中
df = snowflake.sql_context.read.format("snowflake url")\
.options(**snowflake_options)\
.load()
数据框中的结果:
> df: pyspark.sql.dataframe.DataFrame
> ARRAY_COL:string
> OBJ_COL:string
目前是否有一种方法可以在连接器中覆盖此默认行为,以将雪花 OBJECT
映射到 spark StructType
和/或雪花 ARRAY
到spark MapType
?
最佳答案
希望您一切安好,我想您可能正在寻找 columnmapping 参数。不过我不是这方面的专家,所以我只是想分享我发现的研究。
专门针对Spark表转Snowflake表 https://docs.snowflake.net/manuals/user-guide/spark-connector-overview.html#column-mapping
为了激发 MapType 的雪花 ARRAY: 对象是否作为数组存储在 Snowflake 表中? 这是你要找的吗? https://sparkbyexamples.com/spark/spark-sql-map-functions/
关于python - 使用 spark 连接器从雪花自定义数据类型映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56369850/