gpt4 book ai didi

hadoop - 在 Hadoop 中处理条件文件

转载 作者:可可西里 更新时间:2023-11-01 16:29:39 26 4
gpt4 key购买 nike

我被卡住了,到目前为止找不到任何解决方案。我需要将固定长度文件转换为分隔的控件 A,但文件模式是这样的,即基于属性之一,即 record_type,该特定记录的模式更改。我不知道谁可以将此固定文件转换为分隔文件。

示例记录:

NCBDX**DD**00C98             0002016-01-0402.30.33013000895527        821064      07.30.332016-01-0400895527        000000
NCBDX**DT**00C98 5108050000007851 000821064 0R

Abinitio DML :-
record //RECORD-START
ascii string(1) RECORD_PREFIX;
ascii string(4) TRANSMISSION_PROCESS;
ascii string(2) RECORD_TYPE;
ascii string(5) HEADER_INSTITUTION_ID;
ascii string(11) HEADER_PREFIX_NUMBER;
if (record_type=="DT") //Changed single quotes to double quotes - Sathish Ethiraj
record //digital_transaction_rec
ascii string("\001") dt_cardholder_account_number=NULL("");
ascii decimal("\001") dt_member_number=NULL("");
ascii string("\001") dt_terminal_sequence_number=NULL("");
ascii string("\001") dt_tokenization_message_type=NULL("");
ascii string("\001") dt_payment_token=NULL("");
ascii string("\001") dt_token_expiration_date=NULL("");
ascii string("\001") dt_account_number_indicator=NULL("");
ascii string("\001") dt_tokenization_event_indicator=NULL("");
ascii string("\001") dt_transaction_status_indicator=NULL("");
ascii string("\001") dt_transaction_category_code=NULL("");
ascii string("\001") dt_payment_initiation_channel=NULL("");
ascii string("\001") dt_wallet_program_indicator=NULL("");
ascii string("\001") dt_on_behalf_service_1=NULL("");
ascii string("\001") dt_on_behalf_service_2=NULL("");
ascii string("\001") dt_on_behalf_result_1=NULL("");
ascii string("\001") dt_on_behalf_result_2=NULL("");
ascii string("\001") dt_primary_account_number_source=NULL("");
ascii string("\001") dt_payment_appn_instance_id=NULL("");
if (record_type=="DD")
record // DOLLAR-LOG-REC
ascii string("\001") dd_hdr_instun_id =NULL("");
ascii string("\001") dd_hdr_prfx_num =NULL("");
ascii string("\001") dd_cdhldr_acct_num =NULL("");
ascii string("\001") dd_mbr_num =NULL("");
ascii string("\001") dd_mtv_trxn_dt =NULL("");
ascii string("\001") dd_mtv_trxn_tm =NULL("");
ascii string("\001") dd_trxn_rqst_type_cd =NULL("");
ascii string("\001") dd_trmnl_num =NULL("");
ascii string("\001") dd_trmnl_seq_num =NULL("");

我尝试使用 substr 函数并加载到 HIVE 中,但无法设置条件。在这方面的任何帮助都会非常有帮助。

最佳答案

Hive 中的表必须具有定义的模式,该模式不能根据输入而改变...也许您可以将输入文件拆分为两个文件 - record_type=="DT"和 record_type=="DD",然后将它们分别加载到不同的表中。

关于hadoop - 在 Hadoop 中处理条件文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com