flink getExecutionPlan 执行计划可视化

博客介绍了Flink内置的执行计划可视化工具,给出了其网址http://flink.apache.org/visualizer/index.html ,还包含代码示例并输出json。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink 内置了一个执行计划的可是化工具。http://flink.apache.org/visualizer/index.html

代码示例

object MyApp extends App {


  private val env = StreamExecutionEnvironment.getExecutionEnvironment

  env.setParallelism(1)

  private val streamPageEvent: DataStream[String] = env.socketTextStream("localhost", 9001)
  private val streamMobileEvent: DataStream[String] = env.socketTextStream("localhost", 9002)
  private val streamServerEvent: DataStream[String] = env.socketTextStream("localhost", 9003)

  private val stream: DataStream[String] = streamPageEvent.union(streamMobileEvent,streamServerEvent)


  stream.print()

  println(env.getExecutionPlan)
}

输出json

{
    "nodes": [
        {
            "id": 1,
            "type": "Source: Socket Stream",
            "pact": "Data Source",
            "contents": "Source: Socket Stream",
            "parallelism": 1
        },
        {
            "id": 2,
            "type": "Source: Socket Stream",
            "pact": "Data Source",
            "contents": "Source: Socket Stream",
            "parallelism": 1
        },
        {
            "id": 3,
            "type": "Source: Socket Stream",
            "pact": "Data Source",
            "contents": "Source: Socket Stream",
            "parallelism": 1
        },
        {
            "id": 5,
            "type": "Sink: Print to Std. Out",
            "pact": "Data Sink",
            "contents": "Sink: Print to Std. Out",
            "parallelism": 1,
            "predecessors": [
                {
                    "id": 1,
                    "ship_strategy": "FORWARD",
                    "side": "second"
                },
                {
                    "id": 2,
                    "ship_strategy": "FORWARD",
                    "side": "second"
                },
                {
                    "id": 3,
                    "ship_strategy": "FORWARD",
                    "side": "second"
                }
            ]
        }
    ]
}

企业微信截图_a1f598ec-b763-427d-82a6-d886977d

### 使用Flink进行数据分析可视化 #### 方法概述 对于利用Apache Flink实现数据分析并将其结果可视化的流程,主要分为几个阶段。首先是通过合适的方式收集所需的社会媒体数据,并对其进行必要的预处理工作,比如清理不完整的记录或是过滤掉无关的信息[^1]。 接着,在完成初步的数据准备之后,可以采用Flink SQL来执行特定的查询操作,针对所关心的数据子集创建DataFrame对象用于后续更深入的研究和探索[^2]。一旦获得了结构化良好的中间表示形式——即DataFrame,则可以通过调用`visualization.Table`类的相关方法轻松地将这些抽象的结果转换成直观易懂的形式,例如柱状图、折线图等,并最终导出至指定位置以便进一步分享或报告用途。 为了更好地理解整个过程以及验证实际效果,下面提供了一段简单的Python代码片段作为示范: ```python from pyflink.dataset import ExecutionEnvironment from pyflink.table import BatchTableEnvironment, TableConfig import pandas as pd env = ExecutionEnvironment.get_execution_environment() t_config = TableConfig() t_env = BatchTableEnvironment.create(env, t_config) # 假设有一个CSV文件作为输入源 input_path = 'path/to/your/dataset.csv' df = pd.read_csv(input_path) # 将Pandas DataFrame注册为临时视图供SQL查询使用 t_env.from_pandas(df).create_or_replace_temp_view('my_table') result_df = t_env.sql_query(""" SELECT column_name, COUNT(*) AS count_value FROM my_table GROUP BY column_name; """).to_pandas() # 可视化部分省略... ``` 这段脚本展示了如何加载外部CSV格式的数据集进入内存中形成Pandas DataFrame实例;随后借助PyFlink API接口把其映射成为内部支持的操作单元之一(如上所示),从而允许运用标准SQL语句来进行聚合统计运算;最后一步则是基于得到的新版DataFrame开展图形绘制活动,不过具体细节取决于开发者个人喜好和技术栈的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值