2013-08-06 21 views
16

description numaralı bir dize sütununda, '\t' sekme karakterlerini içerebilen bir kovan tablosunda bu kovanları harici bir uygulamaya bağlarken bazı görünümler karıştırıyor. Bu sütundaki tüm sekme karakterlerinden kurtulmanın basit bir yolu var mı? Bunu yapmak için basit bir python programını çalıştırabilirim ama bunun için daha iyi bir çözüm bulmak istiyorum.kovandaki karakterleri nasıl değiştirebilirim?

cevap

32

regexp_replace UDF benim görevi yerine getirir. Apache Wiki'nin tanımı ve kullanımı aşağıdadır.

regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT): 

Bu INITIAL_STRINGREPLACEMENT örnekleri ile PATTERN tanımlanan java düzenli ifade sözdizimi maç tüm alt dizeleri değiştirme kaynaklanan dize döndürür,

örn: regexp_replace("foobar", "oo|ar", "") döner fb

0

Şu anda buna izin veren OOTB özelliği yok. Bunu başarmanın bir yolu, sizin için bunu yapacak bir özel InputFormat ve/veya SerDe yazmak olabilir. Bu JIRA yararlı olabilir: https://issues.apache.org/jira/browse/HIVE-3751. (doğrudan sorununa bağlı değil).

7

Özel SerDe bunu yapmanın bir yolu olabilir. Yoksa regex_replace ile arabuluculuk sürecinin çeşit kullanabilirsiniz:

create table tableB as 
select 
    columnA 
    regexp_replace(description, '\\t', '') as description 
from tableA 
; 
+1

bu regex_replace değil regexp_replace olmalı, şu ana kadar çalışıyor görünüyor – user1745713

İlgili konular