Esempio n. 1
0
 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)
Esempio n. 2
0
    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)