Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
import requests | |
from io import BytesIO | |
def convert_csv_to_parquet(csv_file=None, csv_url=None): | |
# Read the CSV file either from an uploaded file or from a URL | |
if csv_file is not None: | |
df = pd.read_csv(csv_file.name) | |
elif csv_url is not None: | |
response = requests.get(csv_url) | |
response.raise_for_status() # Ensure the request was successful | |
df = pd.read_csv(BytesIO(response.content)) | |
else: | |
raise ValueError("Either csv_file or csv_url must be provided") | |
# Optionally, perform any cleaning on the DataFrame here if needed | |
# Save the DataFrame as a Parquet file | |
output_file_path = "output.parquet" | |
df.to_parquet(output_file_path, index=False) | |
return output_file_path | |
demo = gr.Interface( | |
fn=convert_csv_to_parquet, | |
inputs=[ | |
gr.File(label="CSV File"), | |
gr.Textbox(label="CSV File URL", placeholder="Enter a URL to a CSV file") | |
], | |
outputs=[gr.File(label="Parquet Output")], | |
title="CSV to Parquet Converter", | |
description="Convert a CSV file to Parquet format from a downloadable link or file upload" | |
) | |
if __name__ == "__main__": | |
demo.launch() | |