9 Flight

9.1 簡介

Flight 是通用客戶端-伺服器架構,用於高效能地在網路介面上傳輸大型資料集,它是由 Apache Arrow 專案建置的。

Flight 允許高效率的資料傳輸,因為它

  • 消除了資料傳輸過程中的序列化需求
  • 允許平行資料串流
  • 經過高度最佳化,可以特別利用 Arrow 的資料欄格式。

arrow 套件提供了用於連線到 Flight RPC 伺服器來傳送和接收資料的方法。

應該注意的是,R 套件中的 Flight 實作仰賴於透過 reticulate 呼叫的 PyArrow。這與 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