NVIDIA / spark-rapids

Spark RAPIDS plugin - accelerate Apache Spark with GPUs
https://nvidia.github.io/spark-rapids
Apache License 2.0
797 stars 232 forks source link

[BUG] test_from_json_mixed_types_list_struct failed #10351

Closed jlowe closed 2 months ago

jlowe commented 8 months ago
[2024-01-31T20:47:58.664Z] =========================== short test summary info ============================
[2024-01-31T20:47:58.664Z] FAILED ../../src/main/python/json_test.py::test_from_json_mixed_types_list_struct[struct<a:string>][DATAGEN_SEED=1706710850, INJECT_OOM]
[2024-01-31T20:47:58.664Z] = 1 failed, 21488 passed, 1743 skipped, 719 xfailed, 2502 xpassed, 12115 warnings in 23223.91s (6:27:03) =
Details ``` [2024-01-31T20:47:58.663Z] =================================== FAILURES =================================== [2024-01-31T20:47:58.663Z] ___________ test_from_json_mixed_types_list_struct[struct] ___________ [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] schema = 'struct' [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] @pytest.mark.parametrize('schema', [ [2024-01-31T20:47:58.663Z] 'struct' [2024-01-31T20:47:58.663Z] ]) [2024-01-31T20:47:58.663Z] @allow_non_gpu(*non_utc_allow) [2024-01-31T20:47:58.663Z] def test_from_json_mixed_types_list_struct(schema): [2024-01-31T20:47:58.663Z] json_string_gen = StringGen(r'{"a": (\[1,2,3\]|{"b":"[a-z]{2}"}) }') [2024-01-31T20:47:58.663Z] > assert_gpu_and_cpu_are_equal_collect( [2024-01-31T20:47:58.663Z] lambda spark : unary_op_df(spark, json_string_gen) \ [2024-01-31T20:47:58.663Z] .select('a', f.from_json('a', schema)), [2024-01-31T20:47:58.663Z] conf={"spark.rapids.sql.expression.JsonToStructs": True, [2024-01-31T20:47:58.663Z] 'spark.rapids.sql.json.read.mixedTypesAsString.enabled': True}) [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] ../../src/main/python/json_test.py:833: [2024-01-31T20:47:58.663Z] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:595: in assert_gpu_and_cpu_are_equal_collect [2024-01-31T20:47:58.663Z] _assert_gpu_and_cpu_are_equal(func, 'COLLECT', conf=conf, is_cpu_first=is_cpu_first, result_canonicalize_func_before_compare=result_canonicalize_func_before_compare) [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:517: in _assert_gpu_and_cpu_are_equal [2024-01-31T20:47:58.663Z] assert_equal(from_cpu, from_gpu) [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:107: in assert_equal [2024-01-31T20:47:58.663Z] _assert_equal(cpu, gpu, float_check=get_float_check(), path=[]) [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:43: in _assert_equal [2024-01-31T20:47:58.663Z] _assert_equal(cpu[index], gpu[index], float_check, path + [index]) [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:36: in _assert_equal [2024-01-31T20:47:58.663Z] _assert_equal(cpu[field], gpu[field], float_check, path + [field]) [2024-01-31T20:47:58.663Z] ../../src/main/python/asserts.py:36: in _assert_equal [2024-01-31T20:47:58.663Z] _assert_equal(cpu[field], gpu[field], float_check, path + [field]) [2024-01-31T20:47:58.663Z] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] cpu = '{"b":"mh"}', gpu = '{mh}' [2024-01-31T20:47:58.663Z] float_check = . at 0x7f578bae0160> [2024-01-31T20:47:58.663Z] path = [84, 'from_json(a)', 'a'] [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] def _assert_equal(cpu, gpu, float_check, path): [2024-01-31T20:47:58.663Z] t = type(cpu) [2024-01-31T20:47:58.663Z] if (t is Row): [2024-01-31T20:47:58.663Z] assert len(cpu) == len(gpu), "CPU and GPU row have different lengths at {} CPU: {} GPU: {}".format(path, len(cpu), len(gpu)) [2024-01-31T20:47:58.663Z] if hasattr(cpu, "__fields__") and hasattr(gpu, "__fields__"): [2024-01-31T20:47:58.663Z] assert cpu.__fields__ == gpu.__fields__, "CPU and GPU row have different fields at {} CPU: {} GPU: {}".format(path, cpu.__fields__, gpu.__fields__) [2024-01-31T20:47:58.663Z] for field in cpu.__fields__: [2024-01-31T20:47:58.663Z] _assert_equal(cpu[field], gpu[field], float_check, path + [field]) [2024-01-31T20:47:58.663Z] else: [2024-01-31T20:47:58.663Z] for index in range(len(cpu)): [2024-01-31T20:47:58.663Z] _assert_equal(cpu[index], gpu[index], float_check, path + [index]) [2024-01-31T20:47:58.663Z] elif (t is list): [2024-01-31T20:47:58.663Z] assert len(cpu) == len(gpu), "CPU and GPU list have different lengths at {} CPU: {} GPU: {}".format(path, len(cpu), len(gpu)) [2024-01-31T20:47:58.663Z] for index in range(len(cpu)): [2024-01-31T20:47:58.663Z] _assert_equal(cpu[index], gpu[index], float_check, path + [index]) [2024-01-31T20:47:58.663Z] elif (t is tuple): [2024-01-31T20:47:58.663Z] assert len(cpu) == len(gpu), "CPU and GPU list have different lengths at {} CPU: {} GPU: {}".format(path, len(cpu), len(gpu)) [2024-01-31T20:47:58.663Z] for index in range(len(cpu)): [2024-01-31T20:47:58.663Z] _assert_equal(cpu[index], gpu[index], float_check, path + [index]) [2024-01-31T20:47:58.663Z] elif (t is pytypes.GeneratorType): [2024-01-31T20:47:58.663Z] index = 0 [2024-01-31T20:47:58.663Z] # generator has no zip :( so we have to do this the hard way [2024-01-31T20:47:58.663Z] done = False [2024-01-31T20:47:58.663Z] while not done: [2024-01-31T20:47:58.663Z] sub_cpu = None [2024-01-31T20:47:58.663Z] sub_gpu = None [2024-01-31T20:47:58.663Z] try: [2024-01-31T20:47:58.663Z] sub_cpu = next(cpu) [2024-01-31T20:47:58.663Z] except StopIteration: [2024-01-31T20:47:58.663Z] done = True [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] try: [2024-01-31T20:47:58.663Z] sub_gpu = next(gpu) [2024-01-31T20:47:58.663Z] except StopIteration: [2024-01-31T20:47:58.663Z] done = True [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] if done: [2024-01-31T20:47:58.663Z] assert sub_cpu == sub_gpu and sub_cpu == None, "CPU and GPU generators have different lengths at {}".format(path) [2024-01-31T20:47:58.663Z] else: [2024-01-31T20:47:58.663Z] _assert_equal(sub_cpu, sub_gpu, float_check, path + [index]) [2024-01-31T20:47:58.663Z] [2024-01-31T20:47:58.663Z] index = index + 1 [2024-01-31T20:47:58.663Z] elif (t is dict): [2024-01-31T20:47:58.663Z] # The order of key/values is not guaranteed in python dicts, nor are they guaranteed by Spark [2024-01-31T20:47:58.663Z] # so sort the items to do our best with ignoring the order of dicts [2024-01-31T20:47:58.663Z] cpu_items = list(cpu.items()).sort(key=_RowCmp) [2024-01-31T20:47:58.663Z] gpu_items = list(gpu.items()).sort(key=_RowCmp) [2024-01-31T20:47:58.663Z] _assert_equal(cpu_items, gpu_items, float_check, path + ["map"]) [2024-01-31T20:47:58.663Z] elif (t is int): [2024-01-31T20:47:58.663Z] assert cpu == gpu, "GPU and CPU int values are different at {}".format(path) [2024-01-31T20:47:58.663Z] elif (t is float): [2024-01-31T20:47:58.663Z] if (math.isnan(cpu)): [2024-01-31T20:47:58.663Z] assert math.isnan(gpu), "GPU and CPU float values are different at {}".format(path) [2024-01-31T20:47:58.663Z] else: [2024-01-31T20:47:58.663Z] assert float_check(cpu, gpu), "GPU and CPU float values are different {}".format(path) [2024-01-31T20:47:58.663Z] elif isinstance(cpu, str): [2024-01-31T20:47:58.663Z] > assert cpu == gpu, "GPU and CPU string values are different at {}".format(path) [2024-01-31T20:47:58.663Z] E AssertionError: GPU and CPU string values are different at [84, 'from_json(a)', 'a'] ```
jlowe commented 8 months ago
Row comparison failure details ``` [2024-01-31T20:47:58.663Z] --- CPU OUTPUT [2024-01-31T20:47:58.663Z] +++ GPU OUTPUT [2024-01-31T20:47:58.663Z] @@ -82,48 +82,48 @@ [2024-01-31T20:47:58.663Z] Row(a=None, from_json(a)=None) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"iz"} }', from_json(a)=Row(a='{"b":"iz"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"md"} }', from_json(a)=Row(a='{"b":"md"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{"b":"mh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"od"} }', from_json(a)=Row(a='{"b":"od"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lq"} }', from_json(a)=Row(a='{"b":"lq"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ss"} }', from_json(a)=Row(a='{"b":"ss"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"yw"} }', from_json(a)=Row(a='{"b":"yw"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"bc"} }', from_json(a)=Row(a='{"b":"bc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ud"} }', from_json(a)=Row(a='{"b":"ud"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"rj"} }', from_json(a)=Row(a='{"b":"rj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qe"} }', from_json(a)=Row(a='{"b":"qe"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{"b":"fr"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wz"} }', from_json(a)=Row(a='{"b":"wz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ry"} }', from_json(a)=Row(a='{"b":"ry"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hh"} }', from_json(a)=Row(a='{"b":"hh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{"b":"ag"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"tt"} }', from_json(a)=Row(a='{"b":"tt"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jc"} }', from_json(a)=Row(a='{"b":"jc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{"b":"jg"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ay"} }', from_json(a)=Row(a='{"b":"ay"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lp"} }', from_json(a)=Row(a='{"b":"lp"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"sp"} }', from_json(a)=Row(a='{"b":"sp"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hg"} }', from_json(a)=Row(a='{"b":"hg"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hf"} }', from_json(a)=Row(a='{"b":"hf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fd"} }', from_json(a)=Row(a='{"b":"fd"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"en"} }', from_json(a)=Row(a='{"b":"en"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{"b":"zk"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wp"} }', from_json(a)=Row(a='{"b":"wp"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"og"} }', from_json(a)=Row(a='{"b":"og"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lb"} }', from_json(a)=Row(a='{"b":"lb"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hj"} }', from_json(a)=Row(a='{"b":"hj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mc"} }', from_json(a)=Row(a='{"b":"mc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qg"} }', from_json(a)=Row(a='{"b":"qg"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ip"} }', from_json(a)=Row(a='{"b":"ip"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{"b":"hc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ee"} }', from_json(a)=Row(a='{"b":"ee"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"dr"} }', from_json(a)=Row(a='{"b":"dr"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{"b":"uy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{"b":"hc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{"b":"km"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ka"} }', from_json(a)=Row(a='{"b":"ka"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fz"} }', from_json(a)=Row(a='{"b":"fz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"rw"} }', from_json(a)=Row(a='{"b":"rw"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"pv"} }', from_json(a)=Row(a='{"b":"pv"}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{mh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"od"} }', from_json(a)=Row(a='{od}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lq"} }', from_json(a)=Row(a='{lq}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ss"} }', from_json(a)=Row(a='{ss}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"yw"} }', from_json(a)=Row(a='{yw}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"bc"} }', from_json(a)=Row(a='{bc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ud"} }', from_json(a)=Row(a='{ud}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"rj"} }', from_json(a)=Row(a='{rj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qe"} }', from_json(a)=Row(a='{qe}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{fr}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"wz"} }', from_json(a)=Row(a='{wz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ry"} }', from_json(a)=Row(a='{ry}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hh"} }', from_json(a)=Row(a='{hh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{ag}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"tt"} }', from_json(a)=Row(a='{tt}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"jc"} }', from_json(a)=Row(a='{jc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{jg}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ay"} }', from_json(a)=Row(a='{ay}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lp"} }', from_json(a)=Row(a='{lp}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"sp"} }', from_json(a)=Row(a='{sp}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hg"} }', from_json(a)=Row(a='{hg}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hf"} }', from_json(a)=Row(a='{hf}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fd"} }', from_json(a)=Row(a='{fd}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"en"} }', from_json(a)=Row(a='{en}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{zk}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"wp"} }', from_json(a)=Row(a='{wp}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"og"} }', from_json(a)=Row(a='{og}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lb"} }', from_json(a)=Row(a='{lb}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hj"} }', from_json(a)=Row(a='{hj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mc"} }', from_json(a)=Row(a='{mc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qg"} }', from_json(a)=Row(a='{qg}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ip"} }', from_json(a)=Row(a='{ip}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{hc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ee"} }', from_json(a)=Row(a='{ee}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"dr"} }', from_json(a)=Row(a='{dr}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{uy}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{hc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{km}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ka"} }', from_json(a)=Row(a='{ka}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fz"} }', from_json(a)=Row(a='{fz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"rw"} }', from_json(a)=Row(a='{rw}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"pv"} }', from_json(a)=Row(a='{pv}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"tu"} }', from_json(a)=Row(a='{"b":"tu"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"zz"} }', from_json(a)=Row(a='{"b":"zz"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"il"} }', from_json(a)=Row(a='{"b":"il"}')) [2024-01-31T20:47:58.663Z] @@ -544,48 +544,48 @@ [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"tq"} }', from_json(a)=Row(a='{"b":"tq"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"xh"} }', from_json(a)=Row(a='{"b":"xh"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"mw"} }', from_json(a)=Row(a='{"b":"mw"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"og"} }', from_json(a)=Row(a='{"b":"og"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"oq"} }', from_json(a)=Row(a='{"b":"oq"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"nl"} }', from_json(a)=Row(a='{"b":"nl"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lg"} }', from_json(a)=Row(a='{"b":"lg"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"cx"} }', from_json(a)=Row(a='{"b":"cx"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{"b":"uy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{"b":"zk"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ie"} }', from_json(a)=Row(a='{"b":"ie"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{"b":"fr"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"go"} }', from_json(a)=Row(a='{"b":"go"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{"b":"bj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{"b":"sn"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{"b":"le"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"od"} }', from_json(a)=Row(a='{"b":"od"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"vq"} }', from_json(a)=Row(a='{"b":"vq"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hb"} }', from_json(a)=Row(a='{"b":"hb"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"cx"} }', from_json(a)=Row(a='{"b":"cx"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ri"} }', from_json(a)=Row(a='{"b":"ri"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ux"} }', from_json(a)=Row(a='{"b":"ux"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qy"} }', from_json(a)=Row(a='{"b":"qy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{"b":"uy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mo"} }', from_json(a)=Row(a='{"b":"mo"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zn"} }', from_json(a)=Row(a='{"b":"zn"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"vu"} }', from_json(a)=Row(a='{"b":"vu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wp"} }', from_json(a)=Row(a='{"b":"wp"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"rs"} }', from_json(a)=Row(a='{"b":"rs"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hm"} }', from_json(a)=Row(a='{"b":"hm"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ys"} }', from_json(a)=Row(a='{"b":"ys"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"de"} }', from_json(a)=Row(a='{"b":"de"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lh"} }', from_json(a)=Row(a='{"b":"lh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{"b":"ag"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fj"} }', from_json(a)=Row(a='{"b":"fj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gu"} }', from_json(a)=Row(a='{"b":"gu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ff"} }', from_json(a)=Row(a='{"b":"ff"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ga"} }', from_json(a)=Row(a='{"b":"ga"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"lo"} }', from_json(a)=Row(a='{"b":"lo"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"yf"} }', from_json(a)=Row(a='{"b":"yf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{"b":"gv"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"dy"} }', from_json(a)=Row(a='{"b":"dy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jj"} }', from_json(a)=Row(a='{"b":"jj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zn"} }', from_json(a)=Row(a='{"b":"zn"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uj"} }', from_json(a)=Row(a='{"b":"uj"}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"og"} }', from_json(a)=Row(a='{og}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"oq"} }', from_json(a)=Row(a='{oq}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"nl"} }', from_json(a)=Row(a='{nl}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lg"} }', from_json(a)=Row(a='{lg}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"cx"} }', from_json(a)=Row(a='{cx}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{uy}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{zk}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ie"} }', from_json(a)=Row(a='{ie}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{fr}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"go"} }', from_json(a)=Row(a='{go}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{bj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{sn}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{le}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"od"} }', from_json(a)=Row(a='{od}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"vq"} }', from_json(a)=Row(a='{vq}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hb"} }', from_json(a)=Row(a='{hb}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"cx"} }', from_json(a)=Row(a='{cx}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ri"} }', from_json(a)=Row(a='{ri}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ux"} }', from_json(a)=Row(a='{ux}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qy"} }', from_json(a)=Row(a='{qy}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"uy"} }', from_json(a)=Row(a='{uy}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mo"} }', from_json(a)=Row(a='{mo}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zn"} }', from_json(a)=Row(a='{zn}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"vu"} }', from_json(a)=Row(a='{vu}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"wp"} }', from_json(a)=Row(a='{wp}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"rs"} }', from_json(a)=Row(a='{rs}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hm"} }', from_json(a)=Row(a='{hm}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ys"} }', from_json(a)=Row(a='{ys}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"de"} }', from_json(a)=Row(a='{de}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lh"} }', from_json(a)=Row(a='{lh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{ag}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fj"} }', from_json(a)=Row(a='{fj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"gu"} }', from_json(a)=Row(a='{gu}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ff"} }', from_json(a)=Row(a='{ff}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ga"} }', from_json(a)=Row(a='{ga}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"lo"} }', from_json(a)=Row(a='{lo}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"yf"} }', from_json(a)=Row(a='{yf}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{gv}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"dy"} }', from_json(a)=Row(a='{dy}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"jj"} }', from_json(a)=Row(a='{jj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zn"} }', from_json(a)=Row(a='{zn}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"uj"} }', from_json(a)=Row(a='{uj}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"mz"} }', from_json(a)=Row(a='{"b":"mz"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"pt"} }', from_json(a)=Row(a='{"b":"pt"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"fn"} }', from_json(a)=Row(a='{"b":"fn"}')) [2024-01-31T20:47:58.663Z] @@ -712,48 +712,48 @@ [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"ov"} }', from_json(a)=Row(a='{"b":"ov"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"nk"} }', from_json(a)=Row(a='{"b":"nk"}')) [2024-01-31T20:47:58.663Z] Row(a=None, from_json(a)=None) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"sb"} }', from_json(a)=Row(a='{"b":"sb"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"in"} }', from_json(a)=Row(a='{"b":"in"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"sf"} }', from_json(a)=Row(a='{"b":"sf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"oi"} }', from_json(a)=Row(a='{"b":"oi"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{"b":"au"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"cq"} }', from_json(a)=Row(a='{"b":"cq"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uz"} }', from_json(a)=Row(a='{"b":"uz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hk"} }', from_json(a)=Row(a='{"b":"hk"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"iz"} }', from_json(a)=Row(a='{"b":"iz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"tj"} }', from_json(a)=Row(a='{"b":"tj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"sx"} }', from_json(a)=Row(a='{"b":"sx"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{"b":"nc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{"b":"gv"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gd"} }', from_json(a)=Row(a='{"b":"gd"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mc"} }', from_json(a)=Row(a='{"b":"mc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"iu"} }', from_json(a)=Row(a='{"b":"iu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wd"} }', from_json(a)=Row(a='{"b":"wd"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"um"} }', from_json(a)=Row(a='{"b":"um"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jh"} }', from_json(a)=Row(a='{"b":"jh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jk"} }', from_json(a)=Row(a='{"b":"jk"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"nu"} }', from_json(a)=Row(a='{"b":"nu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"am"} }', from_json(a)=Row(a='{"b":"am"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"at"} }', from_json(a)=Row(a='{"b":"at"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qx"} }', from_json(a)=Row(a='{"b":"qx"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ce"} }', from_json(a)=Row(a='{"b":"ce"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zu"} }', from_json(a)=Row(a='{"b":"zu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mz"} }', from_json(a)=Row(a='{"b":"mz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fn"} }', from_json(a)=Row(a='{"b":"fn"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"iz"} }', from_json(a)=Row(a='{"b":"iz"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"us"} }', from_json(a)=Row(a='{"b":"us"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"zl"} }', from_json(a)=Row(a='{"b":"zl"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ko"} }', from_json(a)=Row(a='{"b":"ko"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{"b":"mh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qs"} }', from_json(a)=Row(a='{"b":"qs"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"pd"} }', from_json(a)=Row(a='{"b":"pd"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mr"} }', from_json(a)=Row(a='{"b":"mr"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"vl"} }', from_json(a)=Row(a='{"b":"vl"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"kh"} }', from_json(a)=Row(a='{"b":"kh"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mo"} }', from_json(a)=Row(a='{"b":"mo"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qe"} }', from_json(a)=Row(a='{"b":"qe"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"la"} }', from_json(a)=Row(a='{"b":"la"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wl"} }', from_json(a)=Row(a='{"b":"wl"}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"sb"} }', from_json(a)=Row(a='{sb}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"in"} }', from_json(a)=Row(a='{in}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"sf"} }', from_json(a)=Row(a='{sf}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"oi"} }', from_json(a)=Row(a='{oi}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{au}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"cq"} }', from_json(a)=Row(a='{cq}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"uz"} }', from_json(a)=Row(a='{uz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"hk"} }', from_json(a)=Row(a='{hk}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"iz"} }', from_json(a)=Row(a='{iz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"tj"} }', from_json(a)=Row(a='{tj}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"sx"} }', from_json(a)=Row(a='{sx}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{nc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{gv}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"gd"} }', from_json(a)=Row(a='{gd}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mc"} }', from_json(a)=Row(a='{mc}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"iu"} }', from_json(a)=Row(a='{iu}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"wd"} }', from_json(a)=Row(a='{wd}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"um"} }', from_json(a)=Row(a='{um}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"jh"} }', from_json(a)=Row(a='{jh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"jk"} }', from_json(a)=Row(a='{jk}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"nu"} }', from_json(a)=Row(a='{nu}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"am"} }', from_json(a)=Row(a='{am}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"at"} }', from_json(a)=Row(a='{at}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qx"} }', from_json(a)=Row(a='{qx}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ce"} }', from_json(a)=Row(a='{ce}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zu"} }', from_json(a)=Row(a='{zu}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mz"} }', from_json(a)=Row(a='{mz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"fn"} }', from_json(a)=Row(a='{fn}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"iz"} }', from_json(a)=Row(a='{iz}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"us"} }', from_json(a)=Row(a='{us}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"zl"} }', from_json(a)=Row(a='{zl}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"ko"} }', from_json(a)=Row(a='{ko}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{mh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qs"} }', from_json(a)=Row(a='{qs}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"pd"} }', from_json(a)=Row(a='{pd}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mr"} }', from_json(a)=Row(a='{mr}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"vl"} }', from_json(a)=Row(a='{vl}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"kh"} }', from_json(a)=Row(a='{kh}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mo"} }', from_json(a)=Row(a='{mo}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"qe"} }', from_json(a)=Row(a='{qe}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"la"} }', from_json(a)=Row(a='{la}')) [2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"wl"} }', from_json(a)=Row(a='{wl}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"gl"} }', from_json(a)=Row(a='{"b":"gl"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"ht"} }', from_json(a)=Row(a='{"b":"ht"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"sq"} }', from_json(a)=Row(a='{"b":"sq"}')) [2024-01-31T20:47:58.663Z] @@ -922,48 +922,48 @@ [2024-01-31T20:47:58.663Z] Row(a=None, from_json(a)=None) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"ai"} }', from_json(a)=Row(a='{"b":"ai"}')) [2024-01-31T20:47:58.663Z] Row(a='{"a": {"b":"ak"} }', from_json(a)=Row(a='{"b":"ak"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jf"} }', from_json(a)=Row(a='{"b":"jf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jy"} }', from_json(a)=Row(a='{"b":"jy"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wb"} }', from_json(a)=Row(a='{"b":"wb"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mf"} }', from_json(a)=Row(a='{"b":"mf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{"b":"nc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ie"} }', from_json(a)=Row(a='{"b":"ie"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ka"} }', from_json(a)=Row(a='{"b":"ka"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"jc"} }', from_json(a)=Row(a='{"b":"jc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{"b":"ag"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"xt"} }', from_json(a)=Row(a='{"b":"xt"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gi"} }', from_json(a)=Row(a='{"b":"gi"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ia"} }', from_json(a)=Row(a='{"b":"ia"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ac"} }', from_json(a)=Row(a='{"b":"ac"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"rf"} }', from_json(a)=Row(a='{"b":"rf"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"uq"} }', from_json(a)=Row(a='{"b":"uq"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{"b":"nc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"yp"} }', from_json(a)=Row(a='{"b":"yp"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"xm"} }', from_json(a)=Row(a='{"b":"xm"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gu"} }', from_json(a)=Row(a='{"b":"gu"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"do"} }', from_json(a)=Row(a='{"b":"do"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ob"} }', from_json(a)=Row(a='{"b":"ob"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"bc"} }', from_json(a)=Row(a='{"b":"bc"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"hi"} }', from_json(a)=Row(a='{"b":"hi"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"rb"} }', from_json(a)=Row(a='{"b":"rb"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"yo"} }', from_json(a)=Row(a='{"b":"yo"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"ay"} }', from_json(a)=Row(a='{"b":"ay"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"gs"} }', from_json(a)=Row(a='{"b":"gs"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"qa"} }', from_json(a)=Row(a='{"b":"qa"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"iv"} }', from_json(a)=Row(a='{"b":"iv"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"fj"} }', from_json(a)=Row(a='{"b":"fj"}')) [2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"wq"} }', from_json(a)=Row(a='{"b":"wq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"an"} }', from_json(a)=Row(a='{"b":"an"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{"b":"sl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bp"} }', from_json(a)=Row(a='{"b":"bp"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"qp"} }', from_json(a)=Row(a='{"b":"qp"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{"b":"le"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vk"} }', from_json(a)=Row(a='{"b":"vk"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{"b":"sn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"rn"} }', from_json(a)=Row(a='{"b":"rn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"iw"} }', from_json(a)=Row(a='{"b":"iw"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"qh"} }', from_json(a)=Row(a='{"b":"qh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bp"} }', from_json(a)=Row(a='{"b":"bp"}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jf"} }', from_json(a)=Row(a='{jf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jy"} }', from_json(a)=Row(a='{jy}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"wb"} }', from_json(a)=Row(a='{wb}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mf"} }', from_json(a)=Row(a='{mf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{nc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ie"} }', from_json(a)=Row(a='{ie}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ka"} }', from_json(a)=Row(a='{ka}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jc"} }', from_json(a)=Row(a='{jc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ag"} }', from_json(a)=Row(a='{ag}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xt"} }', from_json(a)=Row(a='{xt}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gi"} }', from_json(a)=Row(a='{gi}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ia"} }', from_json(a)=Row(a='{ia}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ac"} }', from_json(a)=Row(a='{ac}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rf"} }', from_json(a)=Row(a='{rf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"uq"} }', from_json(a)=Row(a='{uq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nc"} }', from_json(a)=Row(a='{nc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"yp"} }', from_json(a)=Row(a='{yp}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xm"} }', from_json(a)=Row(a='{xm}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gu"} }', from_json(a)=Row(a='{gu}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"do"} }', from_json(a)=Row(a='{do}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ob"} }', from_json(a)=Row(a='{ob}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bc"} }', from_json(a)=Row(a='{bc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hi"} }', from_json(a)=Row(a='{hi}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rb"} }', from_json(a)=Row(a='{rb}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"yo"} }', from_json(a)=Row(a='{yo}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ay"} }', from_json(a)=Row(a='{ay}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gs"} }', from_json(a)=Row(a='{gs}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"qa"} }', from_json(a)=Row(a='{qa}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"iv"} }', from_json(a)=Row(a='{iv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fj"} }', from_json(a)=Row(a='{fj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"wq"} }', from_json(a)=Row(a='{wq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"an"} }', from_json(a)=Row(a='{an}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{sl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bp"} }', from_json(a)=Row(a='{bp}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"qp"} }', from_json(a)=Row(a='{qp}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{le}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vk"} }', from_json(a)=Row(a='{vk}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{sn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rn"} }', from_json(a)=Row(a='{rn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"iw"} }', from_json(a)=Row(a='{iw}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"qh"} }', from_json(a)=Row(a='{qh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bp"} }', from_json(a)=Row(a='{bp}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"kt"} }', from_json(a)=Row(a='{"b":"kt"}')) [2024-01-31T20:47:58.664Z] Row(a=None, from_json(a)=None) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"lo"} }', from_json(a)=Row(a='{"b":"lo"}')) [2024-01-31T20:47:58.664Z] @@ -1090,48 +1090,48 @@ [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ja"} }', from_json(a)=Row(a='{"b":"ja"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ak"} }', from_json(a)=Row(a='{"b":"ak"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"sr"} }', from_json(a)=Row(a='{"b":"sr"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"er"} }', from_json(a)=Row(a='{"b":"er"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"po"} }', from_json(a)=Row(a='{"b":"po"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vb"} }', from_json(a)=Row(a='{"b":"vb"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hs"} }', from_json(a)=Row(a='{"b":"hs"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vf"} }', from_json(a)=Row(a='{"b":"vf"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ap"} }', from_json(a)=Row(a='{"b":"ap"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"df"} }', from_json(a)=Row(a='{"b":"df"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sz"} }', from_json(a)=Row(a='{"b":"sz"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vn"} }', from_json(a)=Row(a='{"b":"vn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"xh"} }', from_json(a)=Row(a='{"b":"xh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dx"} }', from_json(a)=Row(a='{"b":"dx"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{"b":"au"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mb"} }', from_json(a)=Row(a='{"b":"mb"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dx"} }', from_json(a)=Row(a='{"b":"dx"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ei"} }', from_json(a)=Row(a='{"b":"ei"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mv"} }', from_json(a)=Row(a='{"b":"mv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"xv"} }', from_json(a)=Row(a='{"b":"xv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dq"} }', from_json(a)=Row(a='{"b":"dq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ba"} }', from_json(a)=Row(a='{"b":"ba"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{"b":"bj"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"os"} }', from_json(a)=Row(a='{"b":"os"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"pf"} }', from_json(a)=Row(a='{"b":"pf"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"rn"} }', from_json(a)=Row(a='{"b":"rn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sh"} }', from_json(a)=Row(a='{"b":"sh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"kn"} }', from_json(a)=Row(a='{"b":"kn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ui"} }', from_json(a)=Row(a='{"b":"ui"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mu"} }', from_json(a)=Row(a='{"b":"mu"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"gi"} }', from_json(a)=Row(a='{"b":"gi"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{"b":"jg"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"oq"} }', from_json(a)=Row(a='{"b":"oq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vx"} }', from_json(a)=Row(a='{"b":"vx"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sa"} }', from_json(a)=Row(a='{"b":"sa"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hv"} }', from_json(a)=Row(a='{"b":"hv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"nl"} }', from_json(a)=Row(a='{"b":"nl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"se"} }', from_json(a)=Row(a='{"b":"se"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"uc"} }', from_json(a)=Row(a='{"b":"uc"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ut"} }', from_json(a)=Row(a='{"b":"ut"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bk"} }', from_json(a)=Row(a='{"b":"bk"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hv"} }', from_json(a)=Row(a='{"b":"hv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vx"} }', from_json(a)=Row(a='{"b":"vx"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mn"} }', from_json(a)=Row(a='{"b":"mn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mj"} }', from_json(a)=Row(a='{"b":"mj"}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"er"} }', from_json(a)=Row(a='{er}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"po"} }', from_json(a)=Row(a='{po}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vb"} }', from_json(a)=Row(a='{vb}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hs"} }', from_json(a)=Row(a='{hs}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vf"} }', from_json(a)=Row(a='{vf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ap"} }', from_json(a)=Row(a='{ap}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"df"} }', from_json(a)=Row(a='{df}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sz"} }', from_json(a)=Row(a='{sz}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vn"} }', from_json(a)=Row(a='{vn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xh"} }', from_json(a)=Row(a='{xh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dx"} }', from_json(a)=Row(a='{dx}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{au}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mb"} }', from_json(a)=Row(a='{mb}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dx"} }', from_json(a)=Row(a='{dx}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ei"} }', from_json(a)=Row(a='{ei}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mv"} }', from_json(a)=Row(a='{mv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xv"} }', from_json(a)=Row(a='{xv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dq"} }', from_json(a)=Row(a='{dq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ba"} }', from_json(a)=Row(a='{ba}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{bj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"os"} }', from_json(a)=Row(a='{os}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"pf"} }', from_json(a)=Row(a='{pf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rn"} }', from_json(a)=Row(a='{rn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sh"} }', from_json(a)=Row(a='{sh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"kn"} }', from_json(a)=Row(a='{kn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ui"} }', from_json(a)=Row(a='{ui}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mu"} }', from_json(a)=Row(a='{mu}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gi"} }', from_json(a)=Row(a='{gi}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{jg}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"oq"} }', from_json(a)=Row(a='{oq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vx"} }', from_json(a)=Row(a='{vx}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sa"} }', from_json(a)=Row(a='{sa}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hv"} }', from_json(a)=Row(a='{hv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nl"} }', from_json(a)=Row(a='{nl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"se"} }', from_json(a)=Row(a='{se}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"uc"} }', from_json(a)=Row(a='{uc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ut"} }', from_json(a)=Row(a='{ut}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bk"} }', from_json(a)=Row(a='{bk}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hv"} }', from_json(a)=Row(a='{hv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vx"} }', from_json(a)=Row(a='{vx}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mn"} }', from_json(a)=Row(a='{mn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mj"} }', from_json(a)=Row(a='{mj}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ki"} }', from_json(a)=Row(a='{"b":"ki"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"cd"} }', from_json(a)=Row(a='{"b":"cd"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"qs"} }', from_json(a)=Row(a='{"b":"qs"}')) [2024-01-31T20:47:58.664Z] @@ -1594,48 +1594,48 @@ [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{"b":"km"}')) [2024-01-31T20:47:58.664Z] Row(a=None, from_json(a)=None) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"xt"} }', from_json(a)=Row(a='{"b":"xt"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"wq"} }', from_json(a)=Row(a='{"b":"wq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fa"} }', from_json(a)=Row(a='{"b":"fa"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vh"} }', from_json(a)=Row(a='{"b":"vh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bs"} }', from_json(a)=Row(a='{"b":"bs"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"nr"} }', from_json(a)=Row(a='{"b":"nr"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"my"} }', from_json(a)=Row(a='{"b":"my"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mf"} }', from_json(a)=Row(a='{"b":"mf"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ai"} }', from_json(a)=Row(a='{"b":"ai"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"is"} }', from_json(a)=Row(a='{"b":"is"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ow"} }', from_json(a)=Row(a='{"b":"ow"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ih"} }', from_json(a)=Row(a='{"b":"ih"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ts"} }', from_json(a)=Row(a='{"b":"ts"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ns"} }', from_json(a)=Row(a='{"b":"ns"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"kj"} }', from_json(a)=Row(a='{"b":"kj"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hb"} }', from_json(a)=Row(a='{"b":"hb"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"wz"} }', from_json(a)=Row(a='{"b":"wz"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"yz"} }', from_json(a)=Row(a='{"b":"yz"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"tf"} }', from_json(a)=Row(a='{"b":"tf"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"rj"} }', from_json(a)=Row(a='{"b":"rj"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"qv"} }', from_json(a)=Row(a='{"b":"qv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{"b":"fr"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{"b":"le"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ex"} }', from_json(a)=Row(a='{"b":"ex"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{"b":"km"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"nq"} }', from_json(a)=Row(a='{"b":"nq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ki"} }', from_json(a)=Row(a='{"b":"ki"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ky"} }', from_json(a)=Row(a='{"b":"ky"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ui"} }', from_json(a)=Row(a='{"b":"ui"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"oo"} }', from_json(a)=Row(a='{"b":"oo"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"kd"} }', from_json(a)=Row(a='{"b":"kd"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ud"} }', from_json(a)=Row(a='{"b":"ud"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"vg"} }', from_json(a)=Row(a='{"b":"vg"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"im"} }', from_json(a)=Row(a='{"b":"im"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dh"} }', from_json(a)=Row(a='{"b":"dh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"xe"} }', from_json(a)=Row(a='{"b":"xe"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ky"} }', from_json(a)=Row(a='{"b":"ky"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"nm"} }', from_json(a)=Row(a='{"b":"nm"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{"b":"km"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fh"} }', from_json(a)=Row(a='{"b":"fh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ca"} }', from_json(a)=Row(a='{"b":"ca"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hu"} }', from_json(a)=Row(a='{"b":"hu"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ql"} }', from_json(a)=Row(a='{"b":"ql"}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"wq"} }', from_json(a)=Row(a='{wq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fa"} }', from_json(a)=Row(a='{fa}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vh"} }', from_json(a)=Row(a='{vh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bs"} }', from_json(a)=Row(a='{bs}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nr"} }', from_json(a)=Row(a='{nr}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"my"} }', from_json(a)=Row(a='{my}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mf"} }', from_json(a)=Row(a='{mf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ai"} }', from_json(a)=Row(a='{ai}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"is"} }', from_json(a)=Row(a='{is}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ow"} }', from_json(a)=Row(a='{ow}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ih"} }', from_json(a)=Row(a='{ih}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ts"} }', from_json(a)=Row(a='{ts}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ns"} }', from_json(a)=Row(a='{ns}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"kj"} }', from_json(a)=Row(a='{kj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hb"} }', from_json(a)=Row(a='{hb}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"wz"} }', from_json(a)=Row(a='{wz}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"yz"} }', from_json(a)=Row(a='{yz}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"tf"} }', from_json(a)=Row(a='{tf}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rj"} }', from_json(a)=Row(a='{rj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"qv"} }', from_json(a)=Row(a='{qv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fr"} }', from_json(a)=Row(a='{fr}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"le"} }', from_json(a)=Row(a='{le}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ex"} }', from_json(a)=Row(a='{ex}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{km}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nq"} }', from_json(a)=Row(a='{nq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ki"} }', from_json(a)=Row(a='{ki}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ky"} }', from_json(a)=Row(a='{ky}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ui"} }', from_json(a)=Row(a='{ui}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"oo"} }', from_json(a)=Row(a='{oo}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"kd"} }', from_json(a)=Row(a='{kd}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ud"} }', from_json(a)=Row(a='{ud}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"vg"} }', from_json(a)=Row(a='{vg}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"im"} }', from_json(a)=Row(a='{im}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dh"} }', from_json(a)=Row(a='{dh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xe"} }', from_json(a)=Row(a='{xe}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ky"} }', from_json(a)=Row(a='{ky}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nm"} }', from_json(a)=Row(a='{nm}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"km"} }', from_json(a)=Row(a='{km}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fh"} }', from_json(a)=Row(a='{fh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ca"} }', from_json(a)=Row(a='{ca}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hu"} }', from_json(a)=Row(a='{hu}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ql"} }', from_json(a)=Row(a='{ql}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"vr"} }', from_json(a)=Row(a='{"b":"vr"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ox"} }', from_json(a)=Row(a='{"b":"ox"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ro"} }', from_json(a)=Row(a='{"b":"ro"}')) [2024-01-31T20:47:58.664Z] @@ -1804,48 +1804,48 @@ [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"mg"} }', from_json(a)=Row(a='{"b":"mg"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ul"} }', from_json(a)=Row(a='{"b":"ul"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"pp"} }', from_json(a)=Row(a='{"b":"pp"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"rv"} }', from_json(a)=Row(a='{"b":"rv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ua"} }', from_json(a)=Row(a='{"b":"ua"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fg"} }', from_json(a)=Row(a='{"b":"fg"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"xs"} }', from_json(a)=Row(a='{"b":"xs"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bm"} }', from_json(a)=Row(a='{"b":"bm"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{"b":"hc"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"iy"} }', from_json(a)=Row(a='{"b":"iy"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ly"} }', from_json(a)=Row(a='{"b":"ly"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{"b":"sl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"tn"} }', from_json(a)=Row(a='{"b":"tn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{"b":"bj"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fu"} }', from_json(a)=Row(a='{"b":"fu"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{"b":"sl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{"b":"gv"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"pk"} }', from_json(a)=Row(a='{"b":"pk"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{"b":"au"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"mp"} }', from_json(a)=Row(a='{"b":"mp"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sc"} }', from_json(a)=Row(a='{"b":"sc"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ob"} }', from_json(a)=Row(a='{"b":"ob"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"ys"} }', from_json(a)=Row(a='{"b":"ys"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"yt"} }', from_json(a)=Row(a='{"b":"yt"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"aa"} }', from_json(a)=Row(a='{"b":"aa"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{"b":"jg"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dl"} }', from_json(a)=Row(a='{"b":"dl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"qa"} }', from_json(a)=Row(a='{"b":"qa"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"zr"} }', from_json(a)=Row(a='{"b":"zr"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"gp"} }', from_json(a)=Row(a='{"b":"gp"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"xj"} }', from_json(a)=Row(a='{"b":"xj"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{"b":"sn"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{"b":"zk"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"sc"} }', from_json(a)=Row(a='{"b":"sc"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"fu"} }', from_json(a)=Row(a='{"b":"fu"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hg"} }', from_json(a)=Row(a='{"b":"hg"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"un"} }', from_json(a)=Row(a='{"b":"un"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dw"} }', from_json(a)=Row(a='{"b":"dw"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"hq"} }', from_json(a)=Row(a='{"b":"hq"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"yl"} }', from_json(a)=Row(a='{"b":"yl"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"lz"} }', from_json(a)=Row(a='{"b":"lz"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"oe"} }', from_json(a)=Row(a='{"b":"oe"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"nw"} }', from_json(a)=Row(a='{"b":"nw"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"dh"} }', from_json(a)=Row(a='{"b":"dh"}')) [2024-01-31T20:47:58.664Z] -Row(a='{"a": {"b":"jp"} }', from_json(a)=Row(a='{"b":"jp"}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"rv"} }', from_json(a)=Row(a='{rv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ua"} }', from_json(a)=Row(a='{ua}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fg"} }', from_json(a)=Row(a='{fg}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xs"} }', from_json(a)=Row(a='{xs}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bm"} }', from_json(a)=Row(a='{bm}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hc"} }', from_json(a)=Row(a='{hc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"iy"} }', from_json(a)=Row(a='{iy}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ly"} }', from_json(a)=Row(a='{ly}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{sl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"tn"} }', from_json(a)=Row(a='{tn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"bj"} }', from_json(a)=Row(a='{bj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fu"} }', from_json(a)=Row(a='{fu}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sl"} }', from_json(a)=Row(a='{sl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gv"} }', from_json(a)=Row(a='{gv}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"pk"} }', from_json(a)=Row(a='{pk}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"au"} }', from_json(a)=Row(a='{au}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"mp"} }', from_json(a)=Row(a='{mp}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sc"} }', from_json(a)=Row(a='{sc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ob"} }', from_json(a)=Row(a='{ob}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"ys"} }', from_json(a)=Row(a='{ys}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"yt"} }', from_json(a)=Row(a='{yt}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"aa"} }', from_json(a)=Row(a='{aa}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jg"} }', from_json(a)=Row(a='{jg}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dl"} }', from_json(a)=Row(a='{dl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"qa"} }', from_json(a)=Row(a='{qa}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"zr"} }', from_json(a)=Row(a='{zr}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"gp"} }', from_json(a)=Row(a='{gp}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"xj"} }', from_json(a)=Row(a='{xj}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sn"} }', from_json(a)=Row(a='{sn}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"zk"} }', from_json(a)=Row(a='{zk}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"sc"} }', from_json(a)=Row(a='{sc}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"fu"} }', from_json(a)=Row(a='{fu}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hg"} }', from_json(a)=Row(a='{hg}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"un"} }', from_json(a)=Row(a='{un}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dw"} }', from_json(a)=Row(a='{dw}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"hq"} }', from_json(a)=Row(a='{hq}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"yl"} }', from_json(a)=Row(a='{yl}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"lz"} }', from_json(a)=Row(a='{lz}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"oe"} }', from_json(a)=Row(a='{oe}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"nw"} }', from_json(a)=Row(a='{nw}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"dh"} }', from_json(a)=Row(a='{dh}')) [2024-01-31T20:47:58.664Z] +Row(a='{"a": {"b":"jp"} }', from_json(a)=Row(a='{jp}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"dt"} }', from_json(a)=Row(a='{"b":"dt"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"ql"} }', from_json(a)=Row(a='{"b":"ql"}')) [2024-01-31T20:47:58.664Z] Row(a='{"a": {"b":"gw"} }', from_json(a)=Row(a='{"b":"gw"}')) ```
andygrove commented 8 months ago

The output shows that an input of {"a": {"b":"md"} } produces the same results between CPU and GPU:

[2024-01-31T20:47:58.663Z]  Row(a='{"a": {"b":"md"} }', from_json(a)=Row(a='{"b":"md"}'))

But an almost identical input of {"a": {"b":"mh"} } produces different results between CPU and GPU:

[2024-01-31T20:47:58.663Z] -Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{"b":"mh"}'))
[2024-01-31T20:47:58.663Z] +Row(a='{"a": {"b":"mh"} }', from_json(a)=Row(a='{mh}'))

I have been unable to reproduce this so far with Spark 3.3.0, even using the same datagen seed.

However, a manual test does show differences between CPU and GPU, but does not match the results from the failed CI run exactly.

scala> val df = Seq("""{"a": {"b":"md"} }""", """{"a": {"b":"mh"} }""").toDF("json").repartition(2)
scala> spark.conf.set("spark.rapids.sql.expression.JsonToStructs", true)
scala> spark.conf.set("spark.rapids.sql.json.read.mixedTypesAsString.enabled", true)
scala> import org.apache.spark.sql.types._
scala> val schema = StructType(Seq(StructField("a", DataTypes.StringType, true)))
scala> df.select(col("json"), from_json(col("json"), schema)).show

GPU output

+------------------+---------------+
|              json|from_json(json)|
+------------------+---------------+
|{"a": {"b":"md"} }|         {{md}}|
|{"a": {"b":"mh"} }|         {{mh}}|
+------------------+---------------+

CPU Output

+------------------+---------------+
|              json|from_json(json)|
+------------------+---------------+
|{"a": {"b":"md"} }|   {{"b":"md"}}|
|{"a": {"b":"mh"} }|   {{"b":"mh"}}|
+------------------+---------------+
jlowe commented 8 months ago

Note that this failure was from a distributed cluster setup, so the nature of the failure may have something to do with how the input data is partitioned across tasks. That particular distribution is probably not replicated in the default local run environment.

andygrove commented 8 months ago

Also, my manual test is using show ... if I run collect then I do see the same results. I think the show issue is already known under issue https://github.com/NVIDIA/spark-rapids/issues/8558

andygrove commented 8 months ago

Note that this failure was from a distributed cluster setup, so the nature of the failure may have something to do with how the input data is partitioned across tasks. That particular distribution is probably not replicated in the default local run environment.

So if some partitions contain mixed types and some don't ... I will try and repro that in an integration test.

I will create a PR to xfail this test while I investigate.

sameerz commented 8 months ago

Depends on https://github.com/rapidsai/cudf/issues/14830

revans2 commented 6 months ago

The test code from the comment in https://github.com/NVIDIA/spark-rapids/issues/10351#issuecomment-1920128622 now works, but the test itself still fails because it needs support for LISTs not just STRUCTs.

https://github.com/rapidsai/cudf/issues/15278

is the issue we want/need fixed for this to start passing.