Ho una colonna di stringhe description
in una tabella alveare che può contenere caratteri di tabulazione '\t'
, tuttavia questi caratteri creano dei problemi durante la connessione di hive a un'applicazione esterna. c'è un modo semplice per sbarazzarsi di tutti i caratteri di tabulazione in quella colonna ?. Potrei eseguire un semplice programma python per farlo, ma voglio trovare una soluzione migliore per questo.come sostituire i caratteri nell'alveare?
risposta
regexp_replace
UDF esegue il mio compito. Di seguito la definizione e l'utilizzo da Wiki di apache.
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT):
Questo restituisce la stringa risultante dalla sostituzione di tutte le sottostringhe in INITIAL_STRING
che corrispondono al java normale sintassi delle espressioni definite PATTERN
con casi di REPLACEMENT
,
ad esempio: regexp_replace("foobar", "oo|ar", "")
rendimenti fb
Al momento non è presente la funzione OOTB che consente questo. Un modo per ottenere ciò potrebbe essere quello di scrivere un InputFormat e/o un SerDe personalizzati che faranno questo per te. Potrebbe essere utile questa JIRA: https://issues.apache.org/jira/browse/HIVE-3751. (non correlato direttamente al tuo problema).
SerDe personalizzato potrebbe essere un modo per farlo. Oppure si potrebbe utilizzare una sorta di processo di mediazione con regex_replace:
create table tableB as
select
columnA
regexp_replace(description, '\\t', '') as description
from tableA
;
È inoltre possibile usa translate(). Se il terzo argomento è troppo breve, i caratteri corrispondenti del secondo argomento vengono cancellati. A differenza di regexp_replace() non è necessario preoccuparsi dei caratteri speciali. Source code.
- 1. javascript sostituire i caratteri
- 2. sostituire i caratteri speciali
- 3. Come sostituire i caratteri Unicode con ASCII
- 4. PHP sostituire i caratteri in un array
- 5. Sostituire i caratteri speciali con ASCII equivalente
- 6. sostituire i caratteri non funziona in python
- 7. Regex per sostituire i caratteri non validi
- 8. Matlab - come sostituire tutti i caratteri speciali in un vettore?
- 9. Come posso sostituire i caratteri Unicode con ASCII in Perl?
- 10. Come sostituire i caratteri unicode nella stringa con qualcos'altro python?
- 11. Come posso sostituire i caratteri Unicode non stampabili in Java?
- 12. Come sostituire le nuove righe con i caratteri di tabulazione?
- 13. Come posso sostituire i caratteri speciali con regex in javascript?
- 14. Come sostituire i caratteri specifici in modo idiomatico in Rust?
- 15. caratteri speciali sostituire
- 16. Come sostituire tutti i caratteri in una stringa utilizzando JavaScript per questo caso specifico: sostituire. by _
- 17. vim: come cercare/sostituire caratteri speciali?
- 18. Come sostituire i caratteri unicode con caratteri ascii in Python (dato lo script perl)?
- 19. sostituire i caratteri speciali nella stringa in java
- 20. Un modo per sostituire i caratteri su Swift String?
- 21. Regex sostituire tutti i caratteri di nuova riga con virgola
- 22. Javascript Espressioni regolari - sostituire i caratteri non numerici
- 23. angolare ui.router ui-sref sostituire i caratteri url - abbellire
- 24. Come sostituire i caratteri speciali con i loro equivalenti (come "á" per "a") in C#?
- 25. Utilizzo di RegEx per sostituire i caratteri non validi
- 26. Java regex lookahead negativo per sostituire i caratteri non tripli
- 27. Sostituire tutti i caratteri accentati dalla loro LaTeX equivalenti
- 28. regex come sostituire i collegamenti di twitter
- 29. C#, funzione di sostituire tutti i caratteri speciali HTML con normali caratteri di testo
- 30. Sostituire ogni istanza tra due caratteri
questo dovrebbe essere REGEXP_REPLACE non regex_replace, sembra di essere al lavoro finora – user1745713