为什么一些jsonl文件无法在sparkly中加载

kzipqqlq  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(354)

我目前正在尝试使用sparkyrv1.3.1和spark2.3.3读入一些jsonl文件。虽然有些文件读得很好,但我正在与其他文件斗争,使用完全相同的代码。下面的详细信息包括错误消息和正在使用的包/代码。

library(sparklyr)
library(sparklyr.nested)
library(dplyr)

sc <- spark_connect(master = "local")

june1 <- spark_read_json(sc, "june1-aa.jsonl")

june <- spark_read_json(sc, "janetweets_june24.jsonl")
Error: org.apache.spark.sql.AnalysisException: Since Spark 2.3, the queries from raw JSON/CSV files are disallowed when the
referenced columns only include the internal corrupt record column
(named _corrupt_record by default). For example:
spark.read.schema(schema).json(file).filter($"_corrupt_record".isNotNull).count()
and spark.read.schema(schema).json(file).select("_corrupt_record").show().
Instead, you can cache or save the parsed results and then send the same query.
For example, val df = spark.read.schema(schema).json(file).cache() and then
df.filter($"_corrupt_record".isNotNull).count().;

第一个文件看起来读取正常,但是任何试图查看该文件的操作都会遇到以下错误,并且“连接”窗口中会显示“无表”,而类似文件的文件结构可以很好地读取。

Error in value[[3L]](cond) : 
  Failed to fetch data: java.lang.NullPointerException
    at sparklyr.Collectors$.collectLongArr(collectors.scala:87)
    at sparklyr.Collectors$$anonfun$mkColumnCtx$17.apply(collectors.scala:224)
    at sparklyr.Collectors$$anonfun$mkColumnCtx$17.apply(collectors.scala:224)
    at sparklyr.Collectors$ColumnCtx.collect(collectors.scala:183)
    at sparklyr.Utils$.sparklyr$Utils$$collectRows(utils.scala:90)
    at sparklyr.Utils$.collect(utils.scala:114)
    at sparklyr.Utils.collect(utils.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sparklyr.Invoke.invoke(invoke.scala:147)
    at sparklyr.StreamHandler.handleMethodCall(stream.scala:136)
    at sparklyr.StreamHandler.read(stream.scala:61)
    at sparklyr.BackendHandler$$anonfun$channelRead0$1.apply$mcV$sp(h

由于这些文件的大小,这些是在终端中查看的每个文件的第一行。
pastebin中的示例数据:https://pastebin.com/y3zevnpv.
我试过将我的包更新到最新版本,删除并重新安装,这些文件绝对是jsonlines格式的。这些文件是使用twarc命令行工具从windows机器上从twitter中提取的。请注意:我已经删除了上述数据由于堆栈溢出准则的一些网址。谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题