[BUG] test_from_json_mixed_types_list_struct failed
[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<a:string>] ___________
[2024-01-31T20:47:58.663Z]
[2024-01-31T20:47:58.663Z] schema = 'struct<a:string>'
[2024-01-31T20:47:58.663Z]
[2024-01-31T20:47:58.663Z] @pytest.mark.parametrize('schema', [
[2024-01-31T20:47:58.663Z] 'struct<a:string>'
[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 = <function get_float_check.<locals>.<lambda> 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']
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"}'))
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"}}|
+------------------+---------------+
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.
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
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.
Depends on https://github.com/rapidsai/cudf/issues/14830
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.