[Tut] How to Convert Avro to CSV in Python? - Printable Version +- Sick Gaming (https://www.sickgaming.net) +-- Forum: Programming (https://www.sickgaming.net/forum-76.html) +--- Forum: Python (https://www.sickgaming.net/forum-83.html) +--- Thread: [Tut] How to Convert Avro to CSV in Python? (/thread-99770.html) |
[Tut] How to Convert Avro to CSV in Python? - xSicKxBot - 08-04-2022 How to Convert Avro to CSV in Python? <div> <div class="kk-star-ratings kksr-auto kksr-align-left kksr-valign-top" data-payload="{"align":"left","id":"530217","slug":"default","valign":"top","reference":"auto","class":"","count":"1","readonly":"","score":"4","best":"5","gap":"5","greet":"Rate this post","legend":"4\/5 - (1 vote)","size":"24","width":"113.5","_legend":"{score}\/{best} - ({count} {votes})","font_factor":"1.25"}"> <div class="kksr-stars"> <div class="kksr-stars-inactive"> <div class="kksr-star" data-star="1" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" data-star="2" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" data-star="3" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" data-star="4" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" data-star="5" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> </p></div> <div class="kksr-stars-active" style="width: 113.5px;"> <div class="kksr-star" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> <div class="kksr-star" style="padding-right: 5px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </p></div> </p></div> </div> <div class="kksr-legend" style="font-size: 19.2px;"> 4/5 – (1 vote) </div> </div> <p class="has-global-color-8-background-color has-background"><img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f4ac.png" alt="?" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Question</strong>: How to convert an <em>.avro</em> file to a <em>.csv</em> file in Python?</p> <p><strong>Solution</strong>:</p> <p class="has-global-color-8-background-color has-background">To convert an Avro file <code>my_file.avro</code> to a CSV file <code>my_file.csv</code>, create a CSV writer using the <code>csv</code> module and iterate over all rows using the <a href="https://blog.finxter.com/iterators-iterables-and-itertools/" data-type="post" data-id="29507" target="_blank" rel="noreferrer noopener">iterator</a> returned by <code>fastavro.reader()</code>. Then write each row to a file using the <code>writerow()</code> function.</p> <p>Here’s an example:</p> <pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from fastavro import reader import csv with open('my_file.avro', 'rb') as file_object: csv_file = csv.writer(open("my_file.csv", "w+")) head = True for x in reader(file_object): if head: # write header header = emp.keys() csv_file.writerow(header) head = False # write normal row csv_file.writerow(emp.values())</pre> <p><strong>Related</strong>: This code is a modified and improved version of <a rel="noreferrer noopener" href="https://stackoverflow.com/questions/50676185/how-to-convert-avro-file-to-csv-file-in-python" data-type="URL" data-id="https://stackoverflow.com/questions/50676185/how-to-convert-avro-file-to-csv-file-in-python" target="_blank">this</a> source.</p> <p class="has-base-background-color has-background"><img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f4a1.png" alt="?" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Avro</strong> is a data serialization framework for RPCs (remote procedure calls) that uses JSON and binary format to serialize data.</p> <p class="has-base-background-color has-background"><img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f4a1.png" alt="?" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>CSV</strong> stands for comma-separated values, so you have a row-based file format where values are separated by commas, and the file is named using the suffix <code>.csv</code>.</p> </div> https://www.sickgaming.net/blog/2022/08/01/how-to-convert-avro-to-csv-in-python/ |