| #!/usr/bin/env python |
| ################################################################################ |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| ################################################################################ |
| import platform |
| import sys |
| |
| from pyflink.common import * |
| from pyflink.dataset import * |
| from pyflink.datastream import * |
| from pyflink.table import * |
| from pyflink.table.catalog import * |
| from pyflink.table.descriptors import * |
| from pyflink.table.window import * |
| from pyflink.metrics import * |
| from pyflink.ml.api import * |
| from pyflink.ml.lib import * |
| |
| utf8_out = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) |
| |
| print("Using Python version %s (%s, %s)" % ( |
| platform.python_version(), |
| platform.python_build()[0], |
| platform.python_build()[1])) |
| |
| welcome_msg = u''' |
| \u2592\u2593\u2588\u2588\u2593\u2588\u2588\u2592 |
| \u2593\u2588\u2588\u2588\u2588\u2592\u2592\u2588\u2593\u2592\u2593\u2588\u2588\u2588\u2593\u2592 |
| \u2593\u2588\u2588\u2588\u2593\u2591\u2591 \u2592\u2592\u2592\u2593\u2588\u2588\u2592 \u2592 |
| \u2591\u2588\u2588\u2592 \u2592\u2592\u2593\u2593\u2588\u2593\u2593\u2592\u2591 \u2592\u2588\u2588\u2588\u2588 |
| \u2588\u2588\u2592 \u2591\u2592\u2593\u2588\u2588\u2588\u2592 \u2592\u2588\u2592\u2588\u2592 |
| \u2591\u2593\u2588 \u2588\u2588\u2588 \u2593\u2591\u2592\u2588\u2588 |
| \u2593\u2588 \u2592\u2592\u2592\u2592\u2592\u2593\u2588\u2588\u2593\u2591\u2592\u2591\u2593\u2593\u2588 |
| \u2588\u2591 \u2588 \u2592\u2592\u2591 \u2588\u2588\u2588\u2593\u2593\u2588 \u2592\u2588\u2592\u2592\u2592 |
| \u2588\u2588\u2588\u2588\u2591 \u2592\u2593\u2588\u2593 \u2588\u2588\u2592\u2592\u2592 \u2593\u2588\u2588\u2588\u2592 |
| \u2591\u2592\u2588\u2593\u2593\u2588\u2588 \u2593\u2588\u2592 \u2593\u2588\u2592\u2593\u2588\u2588\u2593 \u2591\u2588\u2591 |
| \u2593\u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2592 \u2588\u2588 \u2592\u2588 \u2588\u2593\u2591\u2592\u2588\u2592\u2591\u2592\u2588\u2592 |
| \u2588\u2588\u2588\u2593\u2591\u2588\u2588\u2593 \u2593\u2588 \u2588 \u2588\u2593 \u2592\u2593\u2588\u2593\u2593\u2588\u2592 |
| \u2591\u2588\u2588\u2593 \u2591\u2588\u2591 \u2588 \u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2592 \u2588\u2588\u2593\u2591\u2592 |
| \u2588\u2588\u2588\u2591 \u2591 \u2588\u2591 \u2593 \u2591\u2588 \u2588\u2588\u2588\u2588\u2588\u2592\u2591\u2591 \u2591\u2588\u2591\u2593 \u2593\u2591 |
| \u2588\u2588\u2593\u2588 \u2592\u2592\u2593\u2592 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2592\u2588\u2592 \u2592\u2593 \u2593\u2588\u2588\u2593 |
| \u2592\u2588\u2588\u2593 \u2593\u2588 \u2588\u2593\u2588 \u2591\u2592\u2588\u2588\u2588\u2588\u2588\u2593\u2593\u2592\u2591 \u2588\u2588\u2592\u2592 \u2588 \u2592 \u2593\u2588\u2592 |
| \u2593\u2588\u2593 \u2593\u2588 \u2588\u2588\u2593 \u2591\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592 \u2592\u2588\u2588\u2593 \u2591\u2588\u2592 |
| \u2593\u2588 \u2588 \u2593\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2593\u2593\u2593\u2588\u2588\u2588\u2593 \u2591\u2592\u2591 \u2593\u2588 |
| \u2588\u2588\u2593 \u2588\u2588\u2592 \u2591\u2592\u2593\u2593\u2588\u2588\u2588\u2593\u2593\u2593\u2593\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592 \u2593\u2588\u2588\u2588 \u2588 |
| \u2593\u2588\u2588\u2588\u2592 \u2588\u2588\u2588 \u2591\u2593\u2593\u2592\u2591\u2591 \u2591\u2593\u2588\u2588\u2588\u2588\u2593\u2591 \u2591\u2592\u2593\u2592 \u2588\u2593 |
| \u2588\u2593\u2592\u2592\u2593\u2593\u2588\u2588 \u2591\u2592\u2592\u2591\u2591\u2591\u2592\u2592\u2592\u2592\u2593\u2588\u2588\u2593\u2591 \u2588\u2593 |
| \u2588\u2588 \u2593\u2591\u2592\u2588 \u2593\u2593\u2593\u2593\u2592\u2591\u2591 \u2592\u2588\u2593 \u2592\u2593\u2593\u2588\u2588\u2593 \u2593\u2592 \u2592\u2592\u2593 |
| \u2593\u2588\u2593 \u2593\u2592\u2588 \u2588\u2593\u2591 \u2591\u2592\u2593\u2593\u2588\u2588\u2592 \u2591\u2593\u2588\u2592 \u2592\u2592\u2592\u2591\u2592\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2592 |
| \u2588\u2588\u2591 \u2593\u2588\u2592\u2588\u2592 \u2592\u2593\u2593\u2592 \u2593\u2588 \u2588\u2591 \u2591\u2591\u2591\u2591 \u2591\u2588\u2592 |
| \u2593\u2588 \u2592\u2588\u2593 \u2591 \u2588\u2591 \u2592\u2588 \u2588\u2593 |
| \u2588\u2593 \u2588\u2588 \u2588\u2591 \u2593\u2593 \u2592\u2588\u2593\u2593\u2593\u2592\u2588\u2591 |
| \u2588\u2593 \u2591\u2593\u2588\u2588\u2591 \u2593\u2592 \u2593\u2588\u2593\u2592\u2591\u2591\u2591\u2592\u2593\u2588\u2591 \u2592\u2588 |
| \u2588\u2588 \u2593\u2588\u2593\u2591 \u2592 \u2591\u2592\u2588\u2592\u2588\u2588\u2592 \u2593\u2593 |
| \u2593\u2588\u2592 \u2592\u2588\u2593\u2592\u2591 \u2592\u2592 \u2588\u2592\u2588\u2593\u2592\u2592\u2591\u2591\u2592\u2588\u2588 |
| \u2591\u2588\u2588\u2592 \u2592\u2593\u2593\u2592 \u2593\u2588\u2588\u2593\u2592\u2588\u2592 \u2591\u2593\u2593\u2593\u2593\u2592\u2588\u2593 |
| \u2591\u2593\u2588\u2588\u2592 \u2593\u2591 \u2592\u2588\u2593\u2588 \u2591\u2591\u2592\u2592\u2592 |
| \u2592\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2591\u2591\u2593\u2593 \u2593\u2591\u2592\u2588\u2591 |
| |
| F L I N K - P Y T H O N - S H E L L |
| |
| NOTE: Use the prebound Table Environment to implement batch or streaming Table programs. |
| |
| Batch - Use 'b_env' and 'bt_env' variables |
| |
| * |
| * import tempfile |
| * import os |
| * import shutil |
| * sink_path = tempfile.gettempdir() + '/batch.csv' |
| * if os.path.exists(sink_path): |
| * if os.path.isfile(sink_path): |
| * os.remove(sink_path) |
| * else: |
| * shutil.rmtree(sink_path) |
| * b_env.set_parallelism(1) |
| * t = bt_env.from_elements([(1, 'hi', 'hello'), (2, 'hi', 'hello')], ['a', 'b', 'c']) |
| * bt_env.connect(FileSystem().path(sink_path)) \\ |
| * .with_format(OldCsv() |
| * .field_delimiter(',') |
| * .field("a", DataTypes.BIGINT()) |
| * .field("b", DataTypes.STRING()) |
| * .field("c", DataTypes.STRING())) \\ |
| * .with_schema(Schema() |
| * .field("a", DataTypes.BIGINT()) |
| * .field("b", DataTypes.STRING()) |
| * .field("c", DataTypes.STRING())) \\ |
| * .create_temporary_table("batch_sink") |
| * |
| * t.select("a + 1, b, c").insert_into("batch_sink") |
| * |
| * bt_env.execute("batch_job") |
| |
| Streaming - Use 's_env' and 'st_env' variables |
| |
| * |
| * import tempfile |
| * import os |
| * import shutil |
| * sink_path = tempfile.gettempdir() + '/streaming.csv' |
| * if os.path.exists(sink_path): |
| * if os.path.isfile(sink_path): |
| * os.remove(sink_path) |
| * else: |
| * shutil.rmtree(sink_path) |
| * s_env.set_parallelism(1) |
| * t = st_env.from_elements([(1, 'hi', 'hello'), (2, 'hi', 'hello')], ['a', 'b', 'c']) |
| * st_env.connect(FileSystem().path(sink_path)) \\ |
| * .with_format(OldCsv() |
| * .field_delimiter(',') |
| * .field("a", DataTypes.BIGINT()) |
| * .field("b", DataTypes.STRING()) |
| * .field("c", DataTypes.STRING())) \\ |
| * .with_schema(Schema() |
| * .field("a", DataTypes.BIGINT()) |
| * .field("b", DataTypes.STRING()) |
| * .field("c", DataTypes.STRING())) \\ |
| * .create_temporary_table("stream_sink") |
| * |
| * t.select("a + 1, b, c").insert_into("stream_sink") |
| * |
| * st_env.execute("stream_job") |
| ''' |
| utf8_out.write(welcome_msg) |
| |
| b_env = ExecutionEnvironment.get_execution_environment() |
| |
| bt_env = BatchTableEnvironment.create(b_env) |
| |
| s_env = StreamExecutionEnvironment.get_execution_environment() |
| |
| st_env = StreamTableEnvironment.create(s_env) |