Apache flink 弗林克:无法将流放入csv

Apache flink 弗林克:无法将流放入csv,apache-flink,pyflink,Apache Flink,Pyflink,我试图使用PyFlink将一个流以csv格式放入文件系统,但它不起作用 流_到_csv.py 从pyflink.table导入环境设置,StreamTableEnvironment env_settings=EnvironmentSettings.new_instance.in_streaming_mode.use_blink_planner.build table_env=StreamTableEnvironment.createenvironment_settings=env_setting

我试图使用PyFlink将一个流以csv格式放入文件系统,但它不起作用

流_到_csv.py 从pyflink.table导入环境设置,StreamTableEnvironment env_settings=EnvironmentSettings.new_instance.in_streaming_mode.use_blink_planner.build table_env=StreamTableEnvironment.createenvironment_settings=env_settings 表_env.execute_sql 创建表datagen id INT, 数据串 具有 '连接器'='数据发生器', “每秒行数”=“1” 表_env.execute_sql 创建表格打印 id INT, 数据串 具有 “连接器”=“文件系统”, “格式”=“csv”, '路径'='/tmp/output' 表_env.execute_sql 插页 选择id、数据 来自datagen 等待 要运行脚本,请执行以下操作:

$ python stream_to_csv.py
我希望记录进入/tmp/output文件夹,但这不会发生

$ ~ ls /tmp/output
(nothing shown here)

有什么我错过的吗?

我无耻地抄袭了典府的回复

您需要为文件系统设置滚动策略。有关更多详细信息,请参阅滚动策略部分[1]

实际上有输出,您可以执行命令ls-la/tmp/output/,然后您将看到几个名为“.part xxx”的文件

对于作业,需要在配置中设置execution.checkpointing.interval,在Filesystem connector属性中设置sink.rolling-policy.rollover-interval

该作业将如下所示:

从pyflink.table导入环境设置,StreamTableEnvironment env_settings=EnvironmentSettings.new_instance.in_streaming_mode.use_blink_planner.build table_env=StreamTableEnvironment.createenvironment_settings=env_settings 表_env.get_config.get_configuration.set_stringexecution.checkpoint.interval,10s 表_env.execute_sql 创建表datagen id INT, 数据串 具有 '连接器'='数据发生器', “每秒行数”=“1” 表_env.execute_sql 创建表格打印 id INT, 数据串 具有 “连接器”=“文件系统”, “格式”=“csv”, '路径'='/tmp/output', '下沉.滚动策略.滚动间隔'='10s' 表_env.execute_sql 插页 选择id、数据 来自datagen 等待 [1]