복붙노트

[HADOOP] Hive의 hour () 함수는 12 시간 시계 값을 반환합니다.

HADOOP

Hive의 hour () 함수는 12 시간 시계 값을 반환합니다.

설명서에 따르면 하이브 표준 함수 시간 () 0과 24 사이의 값을 반환해야하지만 어떤 이유로 나는 항상 0과 12 사이의 12 시간 시계 값을 가져옵니다. 내 하이브의 타임 스탬프 필드로 MySQLDateTime 필드를 사용하고 있습니다. 표. 문제가 무엇인지 아는 사람이 있습니까?

해결법

  1. ==============================

    1.나는 그것을 발견했다고 생각한다. 나는 소스 코드를 보았고 분명히 UDFHour.java는 두 개의 evaluate () 함수를 가지고있다. Text 객체를 매개 변수로 받아들이는 객체와 TimeStampWritable 객체를 매개 변수로 사용하는 객체입니다. 둘 다 Calendar 인스턴스와 함께 작동하지만 어떤 이유로 첫 번째 함수는 Calendar.HOUR_OF_DAY 값과 두 번째 Calendar.HOUR 값을 반환합니다.

    나는 그것을 발견했다고 생각한다. 나는 소스 코드를 보았고 분명히 UDFHour.java는 두 개의 evaluate () 함수를 가지고있다. Text 객체를 매개 변수로 받아들이는 객체와 TimeStampWritable 객체를 매개 변수로 사용하는 객체입니다. 둘 다 Calendar 인스턴스와 함께 작동하지만 어떤 이유로 첫 번째 함수는 Calendar.HOUR_OF_DAY 값과 두 번째 Calendar.HOUR 값을 반환합니다.

    하이브스 문서를 살펴 봤지만 두 번째 함수에 대해서는 아무 것도 찾을 수 없었지만 거기에 있습니다. 나는 Hortonworks의 HDP와 함께 나온 Hive 0.9.0.16을 사용하고 있습니다.

    편집하다: 나는 이것을 잠시 후에보고했다. 이제 패치를 사용할 수 있습니다 : https://issues.apache.org/jira/browse/HIVE-3850.

  2. ==============================

    2.하이브가 어떤 일을했는지에 관계없이 24 시간 형식으로 반환 할 날짜를 지정할 수 있습니다.

    하이브가 어떤 일을했는지에 관계없이 24 시간 형식으로 반환 할 날짜를 지정할 수 있습니다.

    select FROM_UNIXTIME(mydate)  
    from mytable
    ;
    

    또는 모든 datetimes 스탬프를 의미가있는 경우 업데이트 할 수 있습니다.

    참고

  3. ==============================

    3.hr () 함수는 문자열 형식으로 작동하는 경우 24 시간 형식의 결과를 반환합니다. 너는 사용할 수있다.

    hr () 함수는 문자열 형식으로 작동하는 경우 24 시간 형식의 결과를 반환합니다. 너는 사용할 수있다.

    시간 (캐스트 (문자열 이름으로 column_name))

  4. ==============================

    4.하이브의 하위 버전에 대한 해결 방법이 있습니다.

    하이브의 하위 버전에 대한 해결 방법이 있습니다.

        hour(from_unixtime(
    unix_timestamp(
    from_utc_timestamp(
    from_unixtime(round(created_at/1000)),'Etc/GMT-8')
    )))
    

    EMR을 사용하고 있기 때문에 최신 버전의 하이브를 사용할 수 없으므로이 해결 방법을 사용할 수 있습니다.

  5. ==============================

    5.위에서 이미 말한 것에 대한 예를 보여 주기만하면됩니다.

    위에서 이미 말한 것에 대한 예를 보여 주기만하면됩니다.

    HOUR (캐스트 (문자열 from_utc_timestamp (my_date_timestamp, 'GMT'))) - 24 시간 형식을 반환합니다.

    HOUR (from_utc_timestamp (my_date_timestamp, 'GMT')) - 12 시간 형식을 반환합니다.

  6. from https://stackoverflow.com/questions/14121112/hives-hour-function-returns-12-hour-clock-value by cc-by-sa and MIT license