def test_add_custom_source(self): custom_source = SourceFunction("org.apache.flink.python.util.MyCustomSourceFunction") ds = self.env.add_source(custom_source, type_info=Types.ROW([Types.INT(), Types.STRING()])) ds.add_sink(self.test_sink) self.env.execute("test add custom source") results = self.test_sink.get_results(False) expected = ['3,Mike', '1,Marry', '4,Ted', '5,Jack', '0,Bob', '2,Henry'] results.sort() expected.sort() self.assertEqual(expected, results)
def add_source(self, source_func: SourceFunction, source_name: str = 'Custom Source', type_info: TypeInformation = None) -> 'DataStream': """ Adds a data source to the streaming topology. :param source_func: the user defined function. :param source_name: name of the data source. Optional. :param type_info: type of the returned stream. Optional. :return: the data stream constructed. """ j_type_info = type_info.get_java_type_info( ) if type_info is not None else None j_data_stream = self._j_stream_execution_environment.addSource( source_func.get_java_function(), source_name, j_type_info) return DataStream(j_data_stream=j_data_stream)