শিরোনাম সহ কোনও সিএসভি ফাইল থেকে একটি সারণী তৈরি করুন


12

আমি কেবলমাত্র একটি নির্দিষ্ট সিএসভির বিষয়বস্তুর উপর ভিত্তি করে একটি নতুন মাইএসকিউএল টেবিল তৈরির উপায় অনুসন্ধান করতে চাই। আমি যে সিএসভি ফাইলগুলি ব্যবহার করব সেগুলির নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে;

  • "|" সীমায়িত।
  • প্রথম সারিতে কলামের নামগুলি (শিরোনামগুলি) নির্দিষ্ট করে, "|" সীমায়িত।
  • কলামের নাম এবং ক্রম স্থির নয়।
  • কলামের সংখ্যা নির্দিষ্ট নয়।
  • ফাইলগুলি বড় আকারের (1 মিলি সারি / 50 কলাম)।

এক্সেলের মধ্যে এটি সমস্তই সহজ, তবে মাইএসকিউএল সহ এটি প্রদর্শিত হয় না (গুগলের সাথে ভাগ্য নেই)। আমার কী তাকানো উচিত সে সম্পর্কে কোনও পরামর্শ?

উত্তর:


10

আপনি সিএসভিএসকিএল ব্যবহার করতে পারেন যা একটি অংশ csvkit(সিএসভি ফাইলগুলিতে রূপান্তর এবং কাজ করার জন্য ইউটিলিটিগুলির একটি স্যুট):

  • লিনাক্স বা ম্যাক ওএস এক্স
  • ফ্রি এবং ওপেন সোর্স
  • sudo pip install csvkit
  • উদাহরণ: csvsql --dialect mysql --snifflimit 100000 datatwithheaders.csv > mytabledef.sql
  • এটি CREATE TABLEফাইলের সামগ্রীর উপর ভিত্তি করে একটি বিবৃতি তৈরি করে। কলামের নামগুলি সিএসভি ফাইলের প্রথম লাইন থেকে নেওয়া হয়।

2

যদি আপনি পাইথন ব্যবহার করে ঠিক থাকেন তবে পান্ডস আমার পক্ষে দুর্দান্ত কাজ করেছেন (সিএসভিএসকিএল চিরকাল ঝুলিয়ে দেওয়া হয়েছে এবং আপনার ক্ষেত্রে এর চেয়ে কম কলস এবং সারি রয়েছে)। কিছুটা এইরকম:

from sqlalchemy import create_engine
import pandas as pd

df = pd.read_csv('/PATH/TO/FILE.csv', sep='|')
# Optional, set your indexes to get Primary Keys
df = df.set_index(['COL A', 'COL B'])

engine = create_engine('mysql://user:pass@host/db', echo=False)

df.to_sql(table_name, engine, index=False)

আপনি কোথায় সংজ্ঞা দিন dwh_engine? এটি কি টাইপো এবং আপনি বোঝাতে চেয়েছেন engine?
joanolo

হ্যাঁ এটা হওয়া উচিত engine! স্পট করার জন্য ধন্যবাদ ধন্যবাদ সংশোধন করেছেন
ivansabik

To_sql সারিগুলির সংখ্যা বেশি হলে খুব বেশি সময় নেয় takes আমাদের জন্য, প্রায় 36000 সারি প্রায় 90 মিনিট সময় নেয়। সরাসরি লোড স্টেটমেন্টটি 3 সেকেন্ডের মধ্যে করা হয়েছিল।
এমভিনয়াকাম

0

আপনাকে বিভিন্ন কলামের ডেটাটাইপগুলি, আকার ইত্যাদির উপর ভিত্তি করে একটি তৈরি টেবিল তৈরি করতে হবে।

তারপরে আপনি লোড ডেটা ইনফিল ব্যবহার করুন ... 'এর মাধ্যমে সংবর্ধিত ফিল্ডস |' "ES n" স্কিপ 1 লাইন দ্বারা নিয়ন্ত্রিত লাইনগুলি; (বিশদ জন্য ম্যানুয়াল পৃষ্ঠা দেখুন।)

প্রতিটি সিএসভি -> টেবিলের জন্য একইভাবে করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.