9 飞行

9.1 简介

Flight 是 Apache Arrow 项目的一部分,是一个通用的客户端-服务器框架,用于通过网络接口高效传输大型数据集。

Flight 允许高效的数据传输,因为它

  • 消除了数据传输过程中的序列化需求
  • 允许并行数据流
  • 高度优化以利用 Arrow 的列式格式。

arrow 包提供了连接到 Flight RPC 服务器以发送和接收数据的方法。

需要注意的是,R 包中的 Flight 实现依赖于 PyArrow,它通过 reticulate 调用。这与 R 包中的其他功能有很大不同,这些功能几乎全部直接实现。

9.2 连接到 Flight 服务器

您希望连接到在指定主机和端口上运行的 Flight 服务器。

9.2.1 解决方案

local_client <- flight_connect(host = "127.0.0.1", port = 8089)

9.2.2 另请参阅

有关如何从 R 设置 Flight 服务器的示例,请参阅 Flight 说明文档

9.3 将数据发送到 Flight 服务器

您希望将内存中的数据发送到 Flight 服务器

9.3.1 解决方案

# Connect to the Flight server
local_client <- flight_connect(host = "127.0.0.1", port = 8089)

# Send the data
flight_put(
  local_client,
  data = airquality,
  path = "pollution_data"
)

9.4 检查 Flight 服务器上存在哪些资源

您希望查看 Flight 服务器上有哪些路径可用。

9.4.1 解决方案

# Connect to the Flight server
local_client <- flight_connect(host = "127.0.0.1", port = 8089)

# Retrieve path listing
list_flights(local_client)
# [1] "pollution_data"

9.5 从 Flight 服务器检索数据

您希望从指定路径的 Flight 服务器检索数据。

9.5.1 解决方案

# Connect to the Flight server
local_client <- flight_connect(host = "127.0.0.1", port = 8089)

# Retrieve data
flight_get(
  local_client,
  "pollution_data"
)
# Table
# 153 rows x 6 columns
# $Ozone <int32>
# $Solar.R <int32>
# $Wind <double>
# $Temp <int32>
# $Month <int32>
# $Day <int32>
# 
# See $metadata for additional Schema metadata