【问题标题】:CSV file creation Error in spark_expect_jobj_classspark_expect_jobj_class 中的 CSV 文件创建错误
【发布时间】:2018-09-10 02:56:12
【问题描述】:

我想创建 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 apache-spark sparklyr


    【解决方案1】:

    spark_dataframe is

    用于访问 Spark DataFrame 对象(作为 Java 对象引用)来自 R 对象。

    换句话说,它用于公开内部 JVM 表示,以便能够与 Scala / Java API 交互。在这里没用。

    使用sdf_*spark_methods 时,您应该传递tbl_spark 对象。只要sample_tbl 只包含原子类型,您所需要的就是:

    sample_tbl %>% spark_write_csv(path = "data.csv")
    

    否则,您必须对其进行重构(通过扩展或分解复杂字段)或将嵌套结构转换为序列化对象(例如使用to_json)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2011-02-06
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多