| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | tw | UDF name | UDF class | merge to hivemall? | Rename as.. | Reason | Implementation | comment | |||||||||||||||||||||
2 | |||||||||||||||||||||||||||||
3 | collect/array | append_array | brickhouse.udf.collect.AppendArrayUDF | Y | array_append | use "array_" for the prefix of array functions to avoid conflicts | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/AppendArrayUDF.java | ||||||||||||||||||||||
4 | collect/array | array_index | brickhouse.udf.collect.ArrayIndexUDF | Y | element_at | not returning index but it returns an element | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/ArrayIndexUDF.java | ||||||||||||||||||||||
5 | collect/array | array_union | brickhouse.udf.collect.ArrayUnionUDF | Y | - | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/ArrayUnionUDF.java | |||||||||||||||||||||||
6 | collect/array | first_index | brickhouse.udf.collect.FirstIndexUDF | Y | first_element | not returning index but returns the first element | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/FirstIndexUDF.java | ||||||||||||||||||||||
7 | collect/array | last_index | brickhouse.udf.collect.LastIndexUDF | Y | last_element | not returning index but returns the last element | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/LastIndexUDF.java | ||||||||||||||||||||||
8 | collect/array | intersect_array | brickhouse.udf.collect.ArrayIntersectUDF | N | hivemall already have array_intersect | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/ArrayIntersectUDF.java | |||||||||||||||||||||||
9 | collect/array | array_flatten | brickhouse.udf.collect.ArrayFlattenUDF | Y | - | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/ArrayFlattenUDF.java | |||||||||||||||||||||||
10 | collect | collect | brickhouse.udf.collect.CollectUDAF | Y | - | can be expressed in collect_list in Hive and to_map<k,v> in Hivemall | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CollectUDAF.java | ||||||||||||||||||||||
11 | collect | collect_distinct | brickhouse.udf.collect.CollectDistinctUDAF | N | duplicate to collect_set of Hive | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CollectDistinctUDAF.java | |||||||||||||||||||||||
12 | collect | collect_max | brickhouse.udf.collect.CollectMaxUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CollectMaxUDAF.java | |||||||||||||||||||||||||
13 | collect | collect_merge_max | brickhouse.udf.collect.CollectMergeMaxUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CollectMergeMaxUDAF.java | |||||||||||||||||||||||||
14 | collect | cast_array | brickhouse.udf.collect.CastArrayUDF | N | try_cast in Hivemall is a better alternative | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CastArrayUDF.java | |||||||||||||||||||||||
15 | collect | cast_map | brickhouse.udf.collect.CastMapUDF | N | try_cast in Hivemall is a better alternative | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CastMapUDF.java | |||||||||||||||||||||||
16 | collect | combine | brickhouse.udf.collect.CombineUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CombineUDF.java | |||||||||||||||||||||||||
17 | collect | combine_unique | brickhouse.udf.collect.CombineUniqueUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/CombineUniqueUDAF.java | |||||||||||||||||||||||||
18 | collect | conditional_emit | brickhouse.udf.collect.ConditionalEmit | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/ConditionalEmit | ||||||||||||||||||||||||
19 | collect/array | join_array | brickhouse.udf.collect.JoinArrayUDF | Y | array_to_str | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/JoinArrayUDF.java | |||||||||||||||||||||||
20 | collect/map | map_filter_keys | brickhouse.udf.collect.MapFilterKeysUDF | Y | map_include_keys | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MapFilterKeysUDF.java | |||||||||||||||||||||||
21 | collect/map | map_index | brickhouse.udf.collect.MapIndexUDF | Y | Resolved in Hive 0.14 | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MapIndexUDF.java | |||||||||||||||||||||||
22 | collect/map | map_key_values | brickhouse.udf.collect.MapKeyValuesUDF | Y | explode(map('A',10,'B',20,'C',30)) is enough? | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MapKeyValuesUDF.java | |||||||||||||||||||||||
23 | collect | mhash3 | brickhouse.udf.collect.MurmurHash3UDF | N | Hivemall already have murmurhash functions with the same functionality | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MurmurHash3UDF.java | |||||||||||||||||||||||
24 | collect | mhash3array | brickhouse.udf.collect.MurmurHash3ArrayUDF | N | Hivemall already have murmurhash functions with the same functionality | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MurmurHash3ArrayUDF.java | |||||||||||||||||||||||
25 | collect | multiday_count | brickhouse.udf.collect.MultiDayCounterUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/MultiDayCounterUDAF.java | |||||||||||||||||||||||||
26 | collect | numeric_range | brickhouse.udf.collect.NumericRange | N | Hivemall already has generate_series | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/NumericRange.java | |||||||||||||||||||||||
27 | collect | set_difference | brickhouse.udf.collect.SetDifferenceUDF | - | Not for now | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/SetDifferenceUDF.java | |||||||||||||||||||||||
28 | collect | truncate_array | brickhouse.udf.collect.TruncateArrayUDF | N | array_slice is a better alternative | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/TruncateArrayUDF.java | |||||||||||||||||||||||
29 | collect | union_max | brickhouse.udf.collect.UnionMaxUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/UnionMaxUDAF.java | |||||||||||||||||||||||||
30 | collect | union_map | brickhouse.udf.collect.UnionUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/UnionUDAF.java | |||||||||||||||||||||||||
31 | collect | sessionize | brickhouse.udf.collect.SessionizeUDF | Y | add with some modifications | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/SessionizeUDF.java | |||||||||||||||||||||||
32 | collect | group_count | brickhouse.udf.collect.GroupCountUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/GroupCountUDF.java | |||||||||||||||||||||||||
33 | collect | group_first | brickhouse.udf.collect.FirstOfGroupUDAF | to_ordered_list with top/tail1 is enough | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/collect/FirstOfGroupUDAF.java | ||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||
35 | json | json_map | brickhouse.udf.json.JsonMapUDF | N | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/JsonMapUDF.java | ||||||||||||||||||||||||
36 | json | json_split | brickhouse.udf.json.JsonSplitUDF | N | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/JsonSplitUDF.java | ||||||||||||||||||||||||
37 | json | to_json | brickhouse.udf.json.ToJsonUDF | Y | - | introduced Hive-based one instead of the original brickhouse impl. | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/ToJsonUDF.java | ||||||||||||||||||||||
38 | json | from_json | brickhouse.udf.json.FromJsonUDF | Y | - | introduced Hive-based one instead of the original brickhouse impl. | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/FromJsonUDF.java | ||||||||||||||||||||||
39 | json | to_camel_case | brickhouse.udf.json.ConvertToCamelCaseUDF | N | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/ConvertToCamelCaseUDF.java | ||||||||||||||||||||||||
40 | json | from_camel_case | brickhouse.udf.json.ConvertFromCamelCaseUDF | N | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/json/ConvertFromCamelCaseUDF.java | ||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||
42 | dcache | distributed_map | brickhouse.udf.dcache.DistributedMapUDF | N | duplicate to `distcache_gets` of Hivemall | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/dcache/DistributedMapUDF.java | |||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||
44 | sanity | assert | brickhouse.udf.sanity.AssertUDF | Y | - | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/AssertUDF.java | |||||||||||||||||||||||
45 | sanity | assert_equals | brickhouse.udf.sanity.AssertEqualsUDF | N | assert is enough | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/AssertEqualsUDF.java | |||||||||||||||||||||||
46 | sanity | assert_less_than | brickhouse.udf.sanity.AssertLessThanUDF | N | assert is enough | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/AssertLessThanUDF.java | |||||||||||||||||||||||
47 | sanity | throw_error | brickhouse.udf.sanity.ThrowErrorUDF | Y | raise_error | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/ThrowErrorUDF.java | |||||||||||||||||||||||
48 | sanity | write_to_graphite | brickhouse.udf.sanity.WriteToGraphiteUDF | N | overspec for hivemall | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/WriteToGraphiteUDF.java | |||||||||||||||||||||||
49 | sanity | write_to_tsdb | brickhouse.udf.sanity.WriteToTSDBUDF | N | overspec for hivemall | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sanity/WriteToTSDBUDF.java | |||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||
51 | sketch | combine_previous_sketch | brickhouse.udf.sketch.CombinePreviousSketchUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/CombinePreviousSketchUDF.java | |||||||||||||||||||||||||
52 | sketch | combine_sketch | brickhouse.udf.sketch.CombineSketchUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/CombineSketchUDF.java | |||||||||||||||||||||||||
53 | sketch | convert_to_sketch | brickhouse.udf.sketch.ConvertToSketchUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/ConvertToSketchUDF.java | |||||||||||||||||||||||||
54 | sketch | estimated_reach | brickhouse.udf.sketch.EstimatedReachUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/EstimatedReachUDF.java | |||||||||||||||||||||||||
55 | sketch | md5 | brickhouse.udf.sketch.Md5 | N | Not need since md5 is supported from Hive 1.3.0 | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/Md5.java | |||||||||||||||||||||||
56 | sketch | hash_md5 | brickhouse.udf.sketch.HashMD5UDF | ? | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/HashMD5UDF.java | returns first 64 bits of 128 bits md5 hash in long | |||||||||||||||||||||||
57 | sketch | set_similarity | brickhouse.udf.sketch.SetSimilarityUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/SetSimilarityUDF.java | |||||||||||||||||||||||||
58 | sketch | sketch_set | brickhouse.udf.sketch.SketchSetUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/SketchSetUDAF.java | |||||||||||||||||||||||||
59 | sketch | sketch_hashes | brickhouse.udf.sketch.SketchHashesUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/SketchHashesUDF.java | |||||||||||||||||||||||||
60 | sketch | union_sketch | brickhouse.udf.sketch.UnionSketchSetUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/UnionSketchSetUDAF.java | |||||||||||||||||||||||||
61 | sketch | multiday_count | brickhouse.udf.sketch.MultiDaySketcherUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/sketch/MultiDaySketcherUDAF.java | |||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||
63 | timeseries | moving_avg | brickhouse.udf.timeseries.MovingAvgUDF | Y | UDF is not scalable. Revise to UDTF? select moving_avg(price) as avg from ticker order by time | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/MovingAvgUDF.java | |||||||||||||||||||||||
64 | array | sum_array | brickhouse.udf.timeseries.SumArrayUDF | too niche function | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/SumArrayUDF.java | ||||||||||||||||||||||||
65 | vector | vector_add | brickhouse.udf.timeseries.VectorAddUDF | Y | only suppors Vector operation. Map operations are ignored. | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorAddUDF.java | |||||||||||||||||||||||
66 | vector | vector_scalar_mult | brickhouse.udf.timeseries.VectorMultUDF | Y | merged into VectorDotUDF. only suppors Vector operation. Map operations are ignored. | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorMultUDF.java | |||||||||||||||||||||||
67 | vector | vector_cross_product | brickhouse.udf.timeseries.VectorCrossProductUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorCrossProductUDF.java | |||||||||||||||||||||||||
68 | vector | vector_dot_product | brickhouse.udf.timeseries.VectorDotProductUDF | Y | merged into VectorDotUDF. only suppors Vector operation. Map operations are ignored. | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorDotProductUDF.java | |||||||||||||||||||||||
69 | vector | vector_magnitude | brickhouse.udf.timeseries.VectorMagnitudeUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorMagnitudeUDF.java | |||||||||||||||||||||||||
70 | vector | union_vector_sum | brickhouse.udf.timeseries.VectorUnionSumUDAF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/timeseries/VectorUnionSumUDAF.java | |||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||
72 | bloom | bloom | brickhouse.udf.bloom.BloomUDAF | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/BloomUDAF.java | ||||||||||||||||||||||||
73 | bloom | distributed_bloom | brickhouse.udf.bloom.DistributedBloomUDF | N | depending on distributed cache | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/DistributedBloomUDF.java | |||||||||||||||||||||||
74 | bloom | bloom_contains | brickhouse.udf.bloom.BloomContainsUDF | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/BloomContainsUDF.java | ||||||||||||||||||||||||
75 | bloom | bloom_and | brickhouse.udf.bloom.BloomAndUDF | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/BloomAndUDF.java | ||||||||||||||||||||||||
76 | bloom | bloom_or | brickhouse.udf.bloom.BloomOrUDF | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/BloomOrUDF.java | ||||||||||||||||||||||||
77 | bloom | bloom_not | brickhouse.udf.bloom.BloomNotUDF | Y | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/bloom/BloomNotUDF.java | ||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||
79 | date | add_days | brickhouse.udf.date.AddDaysUDF | N | date_add is supported since Hive 2.1.0 | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/date/AddDaysUDF.java | |||||||||||||||||||||||
80 | date | date_range | brickhouse.udf.date.DateRangeUDTF | N | too niche function. Not easy to use | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/date/DateRangeUDTF | |||||||||||||||||||||||
81 | date | add_iso_period | brickhouse.udf.date.AddISOPeriodUDF | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/date/AddISOPeriodUDF.java | |||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||
83 | hbase | hbase_balanced_key | brickhouse.hbase.GenerateBalancedKeyUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/GenerateBalancedKeyUDF.java | |||||||||||||||||||||||
84 | hbase | hbase_batch_put | brickhouse.hbase.BatchPutUDAF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/BatchPutUDAF.java | |||||||||||||||||||||||
85 | hbase | hbase_batch_get | brickhouse.hbase.BatchGetUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/BatchGetUDF.java | |||||||||||||||||||||||
86 | hbase | hbase_cached_get | brickhouse.hbase.CachedGetUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/CachedGetUDF.java | |||||||||||||||||||||||
87 | hbase | hbase_get | brickhouse.hbase.GetUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/GetUDF.java | |||||||||||||||||||||||
88 | hbase | hbase_put | brickhouse.hbase.PutUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/PutUDF.java | |||||||||||||||||||||||
89 | hbase | salted_bigint_key | brickhouse.hbase.SaltedBigIntUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/SaltedBigIntUDF.java | |||||||||||||||||||||||
90 | hbase | salted_bigint | brickhouse.hbase.SaltedBigIntUDF | N | Having dependencies to HBase is too heavy | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/hbase/SaltedBigIntUDF.java | |||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||
92 | hll | hyperloglog | brickhouse.udf.hll.HyperLogLogUDAF | N | Hivemall already support HLL | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/hll/HyperLogLogUDAF.java | |||||||||||||||||||||||
93 | hll | union_hyperloglog | brickhouse.udf.hll.UnionHyperLogLogUDAF | N | Hivemall already support HLL | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/hll/UnionHyperLogLogUDAF.java | |||||||||||||||||||||||
94 | hll | combine_hyperloglog | brickhouse.udf.hll.CombineHyperLogLogUDF | N | Hivemall already support HLL | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/hll/CombineHyperLogLogUDF.java | |||||||||||||||||||||||
95 | hll | hll_est_cardinality | brickhouse.udf.hll.EstimateCardinalityUDF | N | Hivemall already support HLL | https://github.com/klout/brickhouse/blob/master/src/main/java/brickhouse/udf/hll/EstimateCardinalityUDF.java | |||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||
100 |