如何在GCP DataProc的Jupyter Lab R内核中读取数据并运行线性回归
在Jupyter Lab的R内核中读取GCS数据并运行回归模型
以下是两种适配场景的解决方案,分别对应贴近PySpark的Spark分布式环境和纯R本地处理环境:
一、用sparklyr对接Spark读取GCS数据(与PySpark逻辑一致)
如果希望延续Spark的分布式处理能力,推荐使用sparklyr包:
- 安装并初始化Spark连接
# 首次运行安装sparklyr install.packages("sparklyr") library(sparklyr) # 初始化Spark连接,master参数按环境调整(本地填"local",集群填对应地址) sc <- spark_connect(master = "local")
- 配置GCS访问权限
本地环境需通过服务账号密钥认证;GCP云端环境(如Vertex AI Workbench)可跳过此步骤(默认使用环境凭据):
# 设置服务账号密钥路径 Sys.setenv("GOOGLE_APPLICATION_CREDENTIALS" = "/path/to/your/service-account-key.json")
- 读取GCS上的JSON文件
# 语法与PySpark高度相似 df_business <- spark_read_json(sc, path = "gs://[bucket_name]/[filename].json")
二、纯R环境读取GCS数据(无需Spark)
如果仅需本地处理,可使用googleCloudStorageR直接下载并读取:
- 安装依赖包
install.packages(c("googleCloudStorageR", "jsonlite")) library(googleCloudStorageR) library(jsonlite)
- 配置GCS认证(同上述Spark场景的认证规则)
Sys.setenv("GOOGLE_APPLICATION_CREDENTIALS" = "/path/to/your/service-account-key.json")
- 下载并读取JSON数据
# 临时存储下载的文件 temp_file <- tempfile(fileext = ".json") # 从GCS下载文件到本地临时路径 gcs_get_object("[filename].json", bucket = "[bucket_name]", saveToDisk = temp_file) # 读取JSON为R数据框,多行JSON可改用stream_in(file(temp_file)) df_business <- fromJSON(temp_file, simplifyDataFrame = TRUE)
三、运行回归模型示例
场景1:Spark环境下用MLlib运行回归
library(dplyr) # 线性回归示例,替换target_column和特征列为你的实际列名 lr_model <- ml_linear_regression( df_business, label = "target_column", features = c("feature1", "feature2", "feature3") ) # 查看模型结果 summary(lr_model)
场景2:纯R环境下用基础包运行回归
# 基础R线性回归,替换列名为你的实际字段 lr_model <- lm(target_column ~ feature1 + feature2 + feature3, data = df_business) # 输出模型摘要 summary(lr_model)
内容的提问来源于stack exchange,提问作者Tushar
相关产品推荐
相关产品推荐

