我有一个视图Hive 1.1.0
,基于条件,它应该返回一个空数组或一个数组struct<name: string, jobslots: int>
这是我的代码:
select
case when <condition>
then array()
else array(struct(t1.name, t1.jobslots))
end
from table t1;
Run Code Online (Sandbox Code Playgroud)
这里的问题是,空数组array()
的类型是array<string>
。因此,当我尝试将其插入表中时,它会引发错误。
如何更改它以返回类型为空的数组,array<struct<name: string, jobslots:int>>
以便Hive's size()
函数在该数组上返回 0?
我是Scala的新手,我想了解,在哪里放置Case Classes默认值的复杂逻辑.
case class Job (name: String, timeStamp: Long = <something more complex>) {
...
}
Run Code Online (Sandbox Code Playgroud)
我应该把更复杂的逻辑放在哪里?(例如,不只是分配值)
我是否需要覆盖apply方法或创建伴随对象?