r - spark_expect_jobj_class 中的 CSV 文件创建错误
问题描述
我想创建 CSV 文件。在按照 Spark R 代码运行时,会出现错误。
sc <- spark_connect(master = "local", config = conf, version = '2.2.0')
sample_tbl <- spark_read_json(sc,name="example",path="example.json", header = TRUE, memory = FALSE,
overwrite = TRUE)
sdf_schema_viewer(sample_tbl) # to create db schema
df <- spark_dataframe(sample_tbl)
spark_write_table(df, path = "data.csv", header = TRUE, delimiter = ",",
charset = "UTF-8", null_value = NULL,
options = list(), mode = NULL, partition_by = NULL)
最后一行给出以下错误,
Error in spark_expect_jobj_class(x, "org.apache.spark.sql.DataFrame") :
This operation is only supported on org.apache.spark.sql.DataFrame jobjs but found org.apache.spark.sql.Dataset instead.
问题
如何解决 R 中的这个错误?
解决方案
用于从 R 对象访问 Spark DataFrame 对象(作为 Java 对象引用)。
换句话说,它用于公开内部 JVM 表示,以便能够与 Scala / Java API 进行交互。它在这里没有用。
使用时,sdf_*
您spark_methods
应该传递tbl_spark
对象。只要sample_tbl
只包含原子类型,您所需要的就是:
sample_tbl %>% spark_write_csv(path = "data.csv")
否则,您必须重组它(通过扩展或分解复杂字段)或将嵌套结构转换为序列化对象(例如使用to_json
)。
推荐阅读
- sql - 如何在 PRESTO 中将日期转换为日期字符串
- javascript - 如何处理使用代码拆分的 Docker webpack 应用程序的新版本部署?
- sql - 将“输入”和“输出”的几条记录分组到“会话”中。通过 SQL 查询或编程
- reactjs - 在另一个字段中调用 form.change(fieldName, value) 不会改变 fieldName 字段
- java - JMockit with JUnit5 - JMockit 没有被初始化
- reactjs - 如何使用 react-use-fuse?
- typescript - 你如何在打字稿中将日期时间'00:00 pm'转换为'00:00:00'
- angular - 构建表单时控件和 AbstractControls 出错
- java - ClassNotFoundException: org.springframework.kafka.listener.config.ContainerProperties 尝试升级 Spring Boot 版本时
- javascript - p5.js - 无法在程序运行时的随机点读取我的更新函数