Apache spark 当我从COBOL文件中读取十进制值时,它们将为空

Apache spark 当我从COBOL文件中读取十进制值时,它们将为空,apache-spark,cobol,Apache Spark,Cobol,我正在尝试读取COBOL文件。我有一本文案,定义如下: 10 P1 PIC X(02). 10 P2 PIC X(15). 10 P3 PIC X(01). 10 P4 PIC X(01). 10 P5 PIC X(01). 10 P6 PIC X(01). 10 P7 PIC X(01). 10 P8 PIC S9(06)V99. 10 P9 PIC S9(06)V99. 10 P10 PIC S9(06)V99. 10 P11 PIC S9(06)

我正在尝试读取COBOL文件。我有一本文案,定义如下:

10  P1  PIC X(02).
10  P2  PIC X(15).
10  P3  PIC X(01).
10  P4  PIC X(01).
10  P5  PIC X(01).
10  P6  PIC X(01).
10  P7  PIC X(01).
10  P8  PIC S9(06)V99.
10  P9  PIC S9(06)V99.
10  P10  PIC S9(06)V99.
10  P11  PIC S9(06)V99.
10  P12  PIC S9(06)V99.
10  P13  PIC S9(06)V99.
10  P14  PIC S9(06)V99.
10  P15  PIC S9(06)V99.
10  P16  PIC S9(06)V99.
10  P17  PIC S9(06)V99.
10  P18  PIC S9(06)V99.
p8
p18
中的值包含带符号的十进制值,但当我检查结果表时,它们显示为
NULL

我尝试过的事情:

我将
S9(06)V99更改为:

  • S9(06)V99用法COMP
    仍然显示
    NULL
  • S9(06)V99使用COMP-3
    Spark
    作业已暂停
  • S9(06)V99使用COMP-6
    Spark
    作业已暂停
我还尝试将值更改为
String
picx(20)
),但仍然没有成功

有什么帮助吗

注意:正如您所看到的,我所有的尝试都是使用COBOL结构,我可以用SCALA代码做些什么

编辑1

编辑2

根据一位朋友的建议,我在SparkSession中添加了以下选项:

.option("floating_point_format", "IBM")
我还尝试了@mazaneicha的建议:

.option("encoding", "ascii")
更多详细信息

该程序能够读取常规十进制数(我有两列具有常规十进制数),但是有符号十进制数的问题


从文件中读取数据时,切勿在cobol中将变量声明为数字(9), 而不是将变量声明为字母数字(X)

为了进一步计算,请使用函数NUMVAL

例如:
结果=函数NUMVAL(第8页)。

您尝试过的代码在哪里?没有“COBOL文件”,就像没有“C文件”或“Java文件”一样。COBOL是一种编程语言,而不是文件格式。COMP、COMP-3和COMP-6指的是文件中数据的格式。您应该使用用于写入文件的任何内容。您已将此问题标记为“大型机”,但请参阅COMP-6,它对IBM Enterprise COBOL无效。您能否提供正在处理的数据(十六进制)以及作业暂停的含义?是否存在S0c7异常终止或其他终止代码?
.option("encoding", "ascii")