Sunday 22 October 2017

Hive data typer binära alternativ


Jag undrar om det finns något sätt att faktiskt ladda CSV-data till ett binär Hive-format - dvs göra detsamma som data-laddning i en relationsdatabas skulle göra: parsing och skriv omvandling av inmatningen och lagring av det i ett binärt format (i ett annat binärt format fil vid Hive). Hive-referensen säger att kommandot belastningsdata inpath inte gör någon omvandling så jag misstänker att typerna inte konverteras, t. ex. från sträng till heltal. Jag läste om OCR - och RCFile-format men jag kunde inte ta reda på om t. ex. strängvärden från CSV-typen omvandlas till maskinvärdesvärden och lagras i HDFS. Är det så fallet Vilka andra möjligheter finns det att skapa binära representationer av CSV-filer i Hive På en relaterad anteckning: Jag misstänker att Hive konverterar strängvärden till maskinpresentationer under förfrågan och inte t. ex. jämför strängvärden - är detta antagande rätt frågat 6 maj 13 kl 15:59 Som standard lagrar Hive bara filer som vanliga textfiler och lagrar poster som vanlig text, alla okomprimerade. Det använder ASCII 0x1 för en fältseparator som är mer bekväm än ett komma för vissa ingångar, men jag är säker på att du har arbetat ut hur du får Hive att arbeta med kommaseparerade värden. Om du vill att Hive ska använda ett annat filformat, serialiserasialiseras annorlunda, eller komprimerar de data du har några olika alternativ att leka med. Utanför lådan stöder Hive flera olika filformat: TEXTFILE. SEQUENCEFILE. och RCFILE. Skillnaderna har att göra med hur filer läses, delas upp och skrivs. TEXTFILE är standard och fungerar på vanliga textfiler. SEQUENCEFILE är ett binärt nyckelvärdesparformat som lätt konsumeras av andra delar av Hadoop ekosystemet. Och RCFILE är ett kolumnorienterat sätt att spara Hive-tabeller. Förutom detta filformat kan du skriva egna eller hitta andra som har skrivit för att möta olika behov. Förutom det filformat som dina data sparas i, kan du bestämma hur poster i ett bord ska serialiseras och deserialiseras genom att ange en SerDe. Hive 0.9.1 och senare levereras med en AvroSerDe. och Avro sparar data i ett binärt format (det har också ett schema i sig som introducerar vissa komplikationer). En Google-sökning för binär binär SerDe avslöjade en LazyBinarySerde som låter som ett enklare sätt att spara i ett binärt format. Och om du inte kan hitta något som passar dina behov, kan du alltid skriva din egen SerDe. Jag antar att din fråga passar in i det stora sammanhanget om hur man gör Hive-bord mindre och mer prestanda. För detta ändamål kan du använda komprimering utöver allt som jag har nämnt ovan. För att uppnå detta berättar Hive att komprimera sin produktion och berätta vilken kodkod som ska komprimeras med följande kommandon: Du kan ändra detta i dina config-filer om du vill att dessa inställningar ska fortsätta utanför sessionen (inklusive andra människor Hive och MapReduce jobb om du delar ett kluster). Jag använder SnappyCodec eftersom det fungerar med Hive ut ur lådan, är splittable, och ger bra kompressiondecompression för CPU-tid. Du kan bestämma att en annan codec passar bättre för dina behov. Nu hur använder du alla dessa alternativ om alla dina data är i ett CSV-format Det enklaste sättet är att skapa ett bord ovanpå CSV-filerna, skapa sedan en annan tabell med filformatet och SerDe du vill ha och sätt sedan in data från CSV-backat bord i det nya bordet (se till att du komprimerar din Hive-utgång med din kodkod). Under huven kommer Hive ta hand om att läsa data från ett format (CSV) och skriva till en annan (vad du än bestämt). Efter detta kommer du att ha en kopia av data och du kan släppa CSV-filerna om du vill. Exemplet ovan visar hur du kan utnyttja alla tillgängliga alternativ för dig, men tänk inte på det som ett standard, rimligt användningsfall. Läs upp de olika filformat SerDes-komprimerings codecs och gör några prestanda test för att lösa på din approach. In Hive lagrar du Filer i HDFS och lägger till metadata för att berätta Hive vilken typ av fält väntar du på att vara i varje position i filen ( separator och avgränsare i textfil, rader i olika binära format.) Du kan generera din egen utgång och använda den med Input och Outpu-format. Kan konvertera bilder till, som exempel BASE64 som en bilaga och använda en TextFile. Många möjligheter, men inte en fråga för att lagra bilder. Du kan ha, för att fortsätta TextFile-exemplet, men det är inte den bästa metoden, en fil med detta format: Och ladda in bikup: Om du använder en version av Hive 0.8 kan du använda DataType BINARY i tabelldefinitionen och ladda den. Hive blaster över 25, backtested högkvalitativa handelssignaler per dag i medlemmarnas område. Dessa baseras på våra egna algoritmer som visar en genomsnittlig vinsthastighet på 65 år över test och data. Community Chat The Hive erbjuder ett livechatrum där du kan chatta med andra handlare och diskutera alla saker relaterade till binära alternativ och marknaderna i allmänhet. Du kan också verifiera signaler med äldre handlare för att öka din ITM. Observera Leader The Hive tillåter dig också att prenumerera på betalda signalströmmar av stjärna, handplockade binära alternativhandlare med en granskad track record. Om robotsignaler inte räcker, eller om du föredrar den mänskliga kontakten, observera ledarna. Transparent Transparens är avgörande för oss och det är därför signalvinsthastigheten uppdateras kontinuerligt och inga förluster kommer någonsin att döljas. Din prestation är vår prestanda och vi visar aldrig falska eller utjämnade resultat.

No comments:

Post a Comment