[HADOOP] 하이브 테이블의 상단에 몇 줄 추가
HADOOP하이브 테이블의 상단에 몇 줄 추가
나는 하이브 (전)에서이 형식의 테이블이 있습니다 :
AB_dimp|SF_0060H00000nhSrmQAE|EBA Order 1127735|Execute|New From
AB_dimp|SF_0060H00000nhSwkQAE|EBA Order 1127725|Execute|New From
AB_Dimp|SF_0060H00000nhSyDQAU|EBA Order 1127728|Execute|New From
그리고이 양식 하이브에 해당 테이블의 맨 위에 표시하는이 3 선을 넣어 (후)하려면 :
[Yellow]
Cat ID|AN_Net|
[network]
AB_dimp|SF_0060H00000nhSkPQAU|EBA Order 1127708|Execute|New From
AB_DIMP|SF_0060H00000nhSl8QAE|EBA Order 1127709|Execute|New From
AB_DIMP|SF_0060H00000nhSrmQAE|EBA Order 1127735|Execute|New From
어떻게 하이브에서이 좀 얻을 수 있을까요?
해결법
-
==============================
1.노동 조합을 모두 사용
노동 조합을 모두 사용
select '[Yellow]' as col_name union all select 'ID|AN_Net|' union all select '[network]' union all select col_name from your_table;
표에이 라인을 추가하고 싶은 경우에,뿐만 아니라 당신이 이것을 달성하기 위해 중간 테이블을 필요로하지 않는, 그들을 선택 :
insert overwrite your_table select * from ( select '[Yellow]' as col_name union all select 'ID|AN_Net|' union all select '[network]' union all select col_name from your_table )s;
그러나 테이블의 행이 정렬되지 않은 것을 명심. 에 의해 순서없이 테이블을 선택하면, 많은 매퍼에서 병렬로 실행되는 선택합니다. 기본 파일 (들)을 갈라되고 있으며 맵퍼는 각각 자신의 분할을 참조하십시오. 그들은 동시에 서로 상당히 고립 실행하고 독립적으로 결과를 반환한다. 어느 것이 더 빨리 그것의 결과가 행의 순서가 반환을 보장함으로써, 당신은 볼, 빠른 단지 순서를 반환 할 것입니다. 이것은 당신이 어떤 확률이 테이블을 선택할 때 이러한 추가 행이 첫 번째 사람으로하지 반환 할 수 있습니다 다음에 있다는 것을 의미한다. 만 ORDER BY는 행의 순서를 보장 할 수 있습니다. 그리고 당신은 당신이 ID를 같이 주문 행을 사용할 수있는 몇 가지 열이 필요하거나 열이에 의해 순서대로 사용할 수 있습니다. 테이블이 작은 경우 그것이 하나의 매퍼에 읽을 수 있습니다 행이 기본 파일에서와 같이, 원래의 순서로 반환됩니다 기회입니다.
당신이 row_order 열을 추가하고 ORDER BY에서 상위 쿼리에서 사용할 수있는 파일에서 행의 순서를 유지하려면 :
select DRM_Pln_Parent, opportunityid, opportunity_name from ( SELECT 1 as row_order, '[hier]' as DRM_Pln_Parent, '' as opportunityid, '' as opportunity_name UNION ALL SELECT 2 as row_order, 'Opportunity ID|SF_AllOpportunities|' as DRM_Pln_Parent, '' as opportunityid, '' as opportunity_name UNION ALL SELECT 3 as row_order, '[relation]' as DRM_Pln_Parent, '' as opportunityid, '' as opportunity_name UNION ALL SELECT DISTINCT 4 as row_order, 'SF_AllOpportunities' AS DRM_Pln_Parent, CONCAT('SF_',opportunityid) as opportunityid, opportunity_name, from ... )s order by row_order
더 나은 이해를 위해이 대답을 참조하십시오 https://stackoverflow.com/a/43368113/2700344
-
==============================
2.가.) 첫째, 다른 테이블 (의 말 NewTable하자)를 만들고이 3 개 레코드를 삽입
가.) 첫째, 다른 테이블 (의 말 NewTable하자)를 만들고이 3 개 레코드를 삽입
나.) 이제, 다른 테이블에 기존 데이터를 삽입
insert overwrite table NewTable select * from ExisitngTable;
다.) 삭제 ExisitngTable
D.) 이제부터 NewTable ExisitngTable에 데이터를 삽입
insert overwrite table ExisitngTable select * from NewTable name;
from https://stackoverflow.com/questions/56564050/add-some-lines-at-the-top-of-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 내 하둡 클러스터의 클러스터 ID를 찾는 방법은? (0) | 2019.09.22 |
---|---|
[HADOOP] 하둡 네임 노드가 시작되지 않습니다 (0) | 2019.09.22 |
[HADOOP] 그것은 가져 오기 전에 새 파일에 필터와 Sqoop을 증분 가져 오기를 쓸 수 있습니까? (0) | 2019.09.22 |
[HADOOP] 하둡 setInputPathFilter 오류 (0) | 2019.09.22 |
[HADOOP] 원격 HDFS 액세스 (0) | 2019.09.22 |