Exemplo n.º 1
0
 def test_cython_row_coder(self):
     from pyflink.common import Row, RowKind
     field_count = 15
     field_names = ['f{}'.format(i) for i in range(field_count)]
     row = Row(**{
         field_names[i]: None if i % 2 == 0 else i
         for i in range(field_count)
     })
     data = [row]
     python_field_coders = [
         coder_impl.RowCoderImpl(
             [coder_impl.BigIntCoderImpl() for _ in range(field_count)],
             row._fields)
     ]
     cython_field_coders = [
         coder_impl_fast.RowCoderImpl([
             coder_impl_fast.BigIntCoderImpl() for _ in range(field_count)
         ], row._fields)
     ]
     row.set_row_kind(RowKind.INSERT)
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
     row.set_row_kind(RowKind.UPDATE_BEFORE)
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
     row.set_row_kind(RowKind.UPDATE_AFTER)
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
     row.set_row_kind(RowKind.DELETE)
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
Exemplo n.º 2
0
 def test_cython_array_coder(self):
     data = [[1, 2, 3, None]]
     python_field_coders = [coder_impl.ArrayCoderImpl(coder_impl.BigIntCoderImpl())
                            for _ in range(len(data))]
     cython_field_coders = [coder_impl_fast.ArrayCoderImpl(coder_impl_fast.BigIntCoderImpl())
                            for _ in range(len(data))]
     self.check_cython_coder(python_field_coders, cython_field_coders, [data])
Exemplo n.º 3
0
 def test_cython_row_coder(self):
     from pyflink.common import Row, RowKind
     field_count = 2
     row = Row(*[None if i % 2 == 0 else i for i in range(field_count)])
     data = [row]
     python_field_coders = [
         coder_impl.RowCoderImpl(
             [coder_impl.BigIntCoderImpl() for _ in range(field_count)])
     ]
     cython_field_coders = [
         coder_impl_fast.RowCoderImpl([
             coder_impl_fast.BigIntCoderImpl() for _ in range(field_count)
         ])
     ]
     row.set_row_kind(RowKind.INSERT)
     self.check_cython_coder(python_field_coders, cython_field_coders,
                             [data])
     row.set_row_kind(RowKind.UPDATE_BEFORE)
     self.check_cython_coder(python_field_coders, cython_field_coders,
                             [data])
     row.set_row_kind(RowKind.UPDATE_AFTER)
     self.check_cython_coder(python_field_coders, cython_field_coders,
                             [data])
     row.set_row_kind(RowKind.DELETE)
     self.check_cython_coder(python_field_coders, cython_field_coders,
                             [data])
Exemplo n.º 4
0
 def test_cython_bigint_coder(self):
     data = [1, 100, -100, -1000]
     python_field_coders = [
         coder_impl.BigIntCoderImpl() for _ in range(len(data))
     ]
     cython_field_coders = [
         coder_impl_fast.BigIntCoderImpl() for _ in range(len(data))
     ]
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
Exemplo n.º 5
0
 def test_cython_map_coder(self):
     data = [{'flink': 1, 'pyflink': 2, 'coder': None}]
     python_field_coders = [coder_impl.MapCoderImpl(coder_impl.CharCoderImpl(),
                                                    coder_impl.BigIntCoderImpl())
                            for _ in range(len(data))]
     cython_field_coders = [coder_impl_fast.MapCoderImpl(coder_impl_fast.CharCoderImpl(),
                                                         coder_impl_fast.BigIntCoderImpl())
                            for _ in range(len(data))]
     self.check_cython_coder(python_field_coders, cython_field_coders, [data])
Exemplo n.º 6
0
 def test_cython_row_coder(self):
     from pyflink.table import Row
     field_count = 2
     data = [Row(*[None if i % 2 == 0 else i for i in range(field_count)])]
     python_field_coders = [coder_impl.RowCoderImpl([coder_impl.BigIntCoderImpl()
                                                     for _ in range(field_count)])]
     cython_field_coders = [coder_impl_fast.RowCoderImpl([coder_impl_fast.BigIntCoderImpl()
                                                          for _ in range(field_count)])]
     self.check_cython_coder(python_field_coders, cython_field_coders, [data])
Exemplo n.º 7
0
 def test_cython_primitive_array_coder(self):
     data = [[1, 2, 3, 4]]
     python_field_coders = [
         coder_impl.PrimitiveArrayCoderImpl(coder_impl.BigIntCoderImpl())
         for _ in range(len(data))
     ]
     cython_field_coders = [
         coder_impl_fast.PrimitiveArrayCoderImpl(
             coder_impl_fast.BigIntCoderImpl()) for _ in range(len(data))
     ]
     self.check_cython_coder(python_field_coders, cython_field_coders, data)
Exemplo n.º 8
0
 def test_cython_coder_with_wrong_result_type(self):
     from apache_beam.coders.coder_impl import create_OutputStream
     from pyflink.fn_execution.beam.beam_stream import BeamOutputStream
     data = ['1']
     cython_field_coders = [
         coder_impl_fast.BigIntCoderImpl() for _ in range(len(data))
     ]
     cy_flatten_row_coder = coder_impl_fast.FlattenRowCoderImpl(
         cython_field_coders)
     beam_output_stream = create_OutputStream()
     output_stream = BeamOutputStream(beam_output_stream)
     with self.assertRaises(TypeError) as context:
         cy_flatten_row_coder.encode_to_stream(data, output_stream)
     self.assertIn('an integer is required', str(context.exception))
Exemplo n.º 9
0
 def get_impl(self):
     return coder_impl.BigIntCoderImpl()