我想将多个结构列合并成一个数组。
我从..尝试了数组(col1,col2),但结果是数据类型不匹配,即使所有结构列都是相同的类型。
查询-
< code > select array(struct(f_name _ add,True as is_data_found),struct(l_name_add,True as is_data_found))作为标记from (select array(map('value ',f _ name),map('value ',f_add))作为f_name_add,array(map('value ',l_name),map('value ',l_add))作为l_name _ add from(select distinct f _ name,f_add,l _ name,l _ add from db . tab 1,其中id = '
输入
Sample Table
id f_name f_add l_name l_add
aaa tom in nats in
预期产出:
"tag":
[
{
"f_name_add": [
{
"value":"tom"
},
{
"value": "in"
}
],
"is_data_found": true
},
{
"l_name_add": [
{
"value":"nats"
},
{
"value": "in"
}
],
"is_data_found": true
}
]
错误:
< code >无法解析“array(named_struct('f_name_add ',__auto_generated_subquery_name。f_name_add,' is_data_found ',true),named_struct('l_name_add ',__auto_generated_subquery_name。
l_name_add,' is_data_found ',true))'由于数据类型不匹配:函数数组的输入应该都是同一类型,但它是[struct
看起来像错误消息说有两个结构
:
由于
f_name_add
和l_name_add
,它们彼此之间并不相等。
在这里,我将尝试创建一个json字符串数组,我不确定这是否正是您想要的,尽管:(
设置一个简单的示例
a = [('aaa', 'tom', 'in', 'nats', 'in'),('bbb', 'tom1', 'on', 'nats1', 'on'),]
df = spark.createDataFrame(a, ['id', 'f_name', 'f_add', 'l_name', 'l_add'])
df.show()
+---+------+-----+------+-----+
| id|f_name|f_add|l_name|l_add|
+---+------+-----+------+-----+
|aaa| tom| in| nats| in|
|bbb| tom1| on| nats1| on|
+---+------+-----+------+-----+
df.registerTempTable("tabl1")
df = spark.sql("select array(to_json(struct(f_name_add, True as is_data_found)), \
to_json(struct(l_name_add, True as is_data_found))) as tag \
from (select array(map('value',f_name),map('value',f_add)) as f_name_add, \
array(map('value',l_name),map('value',l_add)) as l_name_add \
from (select distinct f_name, f_add, l_name, l_add from tabl1 where id = 'aaa'))")
df.show(truncate=False)
+------------------------+
|tag |
+------------------------+
|[{"f_name_add":[{"value":"tom"},{"value":"in"}],"is_data_found":true}, {"l_name_add":[{"value":"nats"},{"value":"in"}],"is_data_found":true}]|
+------------------------+
如果您运行< code>df.dtypes
,我们将有,您可以看到我们实际上有一个json字符串数组。
[('tag', 'array<string>')]
我有下面的数据帧模式作为df.current模式,需要获得预期的模式作为df.expected模式,有没有一种方法,我可以在火花2.3实现这一点 df.current架构: df。预期架构: 示例数据: 注意:这里需要实现两件事: 为元素中的每个E、V对创建新字段SN,其值应为数组名称。例如:对于第一个数组列(ADA),SN的值=ADA 将阵列(ADA、ADW)合并为一个外部阵列(信号)
我有一个结构数组 我希望合并并按升序排序数组。然而,当我执行合并时,没有任何变化。这是我用来创建struct数组的代码,以及MergeSort的函数调用。最大用户数是我从二叉树中转换节点数得到的整数,它应该是数组的最大数量。 任何提示或提示都将不胜感激! 编辑:当我尝试编写一些printf语句时,我注意到这些值是负数。但是存储在结构中的值是正数。这个错误的原因是什么?
我有两个数据帧,我需要连接一列,如果id包含在第二个数据帧的同一列中,则只从第一个数据帧中获取行: df1: 断续器: 期望输出: 我已经用df1.join(df2("id ")," left ")试过了,但是给我错误:“Dataframe”对象是不可调用的。
问题内容: 我有以下数据 我得到一个 到目前为止,很好,我有一个数据结构,可以按列名进行寻址 下一个步骤,问题- 我有一个功能,在输入有地理坐标(的两个向量和当然的),并返回两个阵列和在地图上突出位置(此工程确定)。 我可以使用单独的向量,但是我想添加两个新列和。我的天真尝试 提出了一个,教我说它具有字典的某些特征,但是字典却没有。 我可以做吗?tia 请考虑这不适用于结构化数组或记录数组,大多数
问题内容: CREATE TABLE logistics ( id int primary key, campaign VARCHAR(255), event_type VARCHAR (255), date_offered VARCHAR (255), date_ordered DATE, date_delivered DATE, date_recorded DATE, date_complet
所以,我有一个带有数组的哈希,就像这样: 我想将它们合并到一个哈希数组中,组合相应的元素。 结果应该是这样的: 知道如何有效地做到这一点吗? 请注意,真实世界的使用场景可能包含数量可变的散列键。