Apache spark 当我从COBOL文件中读取十进制值时,它们将为空
我正在尝试读取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)
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")