【发布时间】:2020-01-10 14:02:03
【问题描述】:
我在 Databricks 中的 Spark SQL 中有表,并且我有一个作为字符串的列。我将新列转换为数组数据类型,但它们仍然是一个字符串。数据类型是表架构中的数组类型
作为字符串的列
Data1
[2461][2639][2639][7700][7700][3953]
转换为数组
Data_New
["[2461][2639][2639][7700][7700][3953]"]
字符串到数组的转换
df_new = df.withColumn("Data_New", array(df["Data1"]))
然后写成 parquet 并在 databricks 中用作 spark sql 表
当我使用 array_contains 函数搜索字符串时,我得到的结果为 false
select *
from table_name
where array_contains(Data_New,"[2461]")
当我搜索所有字符串时,查询将结果变为真
请建议我是否可以将这些字符串分隔为数组,并可以使用array_contains 函数找到任何数组。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql