පැන්ඩා ඉගෙන ගන්නා අතරතුර මම මාස ගණනාවක් තිස්සේ මෙම ප්රශ්නයට පිළිතුරක් ලබා දීමට උත්සාහ කර ඇත්තෙමි. මගේ එදිනෙදා වැඩ සඳහා මම SAS භාවිතා කරන අතර එය බාහිරින් ලැබෙන සහයෝගය සඳහා විශිෂ්ටයි. කෙසේ වෙතත්, වෙනත් හේතු ගණනාවක් නිසා මෘදුකාංගයක් ලෙස SAS භයානක ය.
එක් දිනක් මම SAS භාවිතය පයිතන් සහ පැන්ඩා සමඟ ප්රතිස්ථාපනය කිරීමට බලාපොරොත්තු වෙමි, නමුත් දැනට විශාල දත්ත කට්ටල සඳහා මූලික කාර්ය ප්රවාහයක් මා සතුව නොමැත. මම කතා කරන්නේ බෙදා හරින ලද ජාලයක් අවශ්ය “විශාල දත්ත” ගැන නොව, මතකයට සරිලන තරම් විශාල ලිපිගොනු නමුත් දෘ hard තැටියකට සරිලන තරම් කුඩා ලිපිගොනු ය.
මගේ පළමු සිතුවිල්ල වන්නේ HDFStore
විශාල දත්ත කට්ටල තැටියේ තබාගෙන විශ්ලේෂණය සඳහා මට අවශ්ය කොටස් පමණක් දත්ත රාමු තුළට ඇද ගැනීමයි. තවත් සමහරු මොන්ගෝ ඩීබී විකල්පයක් භාවිතා කිරීමට පහසු යැයි සඳහන් කර ඇත. මගේ ප්රශ්නය මෙයයි:
පහත සඳහන් දෑ ඉටු කිරීම සඳහා හොඳම-ප්රායෝගික වැඩ ප්රවාහයන් මොනවාද:
- පැතලි ලිපිගොනු ස්ථිර, තැටියේ දත්ත සමුදා ව්යුහයකට ප්රවේශනය කිරීම
- පැන්ඩාස් දත්ත ව්යුහයකට පෝෂණය කිරීම සඳහා දත්ත ලබා ගැනීම සඳහා එම දත්ත ගබඩාව විමසීම
- පැන්ඩා වල කෑලි හැසිරවීමෙන් පසු දත්ත සමුදාය යාවත්කාලීන කිරීම
තථ්ය-ලෝක උදාහරණ බොහෝ සෙයින් අගය කරනු ඇත, විශේෂයෙන් "විශාල දත්ත" මත පැන්ඩා භාවිතා කරන ඕනෑම අයෙකුගෙන්.
සංස්කරණය කරන්න - මෙය ක්රියාත්මක වීමට මා කැමති ආකාරය පිළිබඳ උදාහරණයක්:
- විශාල පැතලි ගොනුවක් ආනයනය කර ස්ථිර තැටියේ දත්ත සමුදා ව්යුහයක ගබඩා කරන්න. මෙම ලිපිගොනු සාමාන්යයෙන් මතකයට ගැළපෙන තරම් විශාලය.
- පැන්ඩා භාවිතා කිරීම සඳහා, මතකයට ගැලපෙන මෙම දත්තවල උප කුලක (සාමාන්යයෙන් වරකට තීරු කිහිපයක් පමණක්) කියවීමට මම කැමැත්තෙමි.
- තෝරාගත් තීරුවල විවිධ මෙහෙයුම් සිදු කිරීමෙන් මම නව තීරු නිර්මාණය කරමි.
- එවිට මට මෙම නව තීරු දත්ත සමුදා ව්යුහයට එකතු කිරීමට සිදුවේ.
මෙම පියවරයන් ඉටු කිරීම සඳහා හොඳම-ප්රායෝගික ක්රමයක් සොයා ගැනීමට මම උත්සාහ කරමි. පැන්ඩා සහ පයිටබල් පිළිබඳ සබැඳි කියවීමෙන් නව තීරුවක් එකතු කිරීම ගැටලුවක් විය හැකි බව පෙනේ.
සංස්කරණය කරන්න - ජෙෆ්ගේ ප්රශ්න වලට විශේෂයෙන් ප්රතිචාර දැක්වීම:
- මම පාරිභෝගික ණය අවදානම් ආකෘති ගොඩනඟමි. දත්ත වර්ග අතර දුරකථන, එස්එස්එන් සහ ලිපින ලක්ෂණ ඇතුළත් වේ; දේපල වටිනාකම්; අපරාධ වාර්තා, බංකොලොත්භාවය වැනි අපහාසාත්මක තොරතුරු ... මම සෑම දිනකම භාවිතා කරන දත්ත කට්ටලවල මිශ්ර දත්ත වර්ගවල සාමාන්යයෙන් ක්ෂේත්ර 1,000 සිට 2,000 දක්වා ප්රමාණයක් ඇත: සංඛ්යාත්මක හා චරිත දත්තවල අඛණ්ඩ, නාමික හා සාමාන්ය විචල්යයන්. මම කලාතුරකින් පේළි එකතු කරමි, නමුත් මම නව තීරු නිර්මාණය කරන බොහෝ මෙහෙයුම් සිදු කරමි.
- සාමාන්ය මෙහෙයුම් වලට කොන්දේසි සහිත තර්කනය භාවිතා කරමින් තීරු කිහිපයක් නව සංයුක්ත තීරුවකට ඒකාබද්ධ කිරීම ඇතුළත් වේ. උදාහරණයක් ලෙස ,
if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'
. මෙම මෙහෙයුම්වල ප්රති result ලය මගේ දත්ත කට්ටලයේ සෑම වාර්තාවක් සඳහාම නව තීරුවකි. - අවසාන වශයෙන්, මම මෙම නව තීරු තැටියේ දත්ත ව්යුහයට එකතු කිරීමට කැමැත්තෙමි. මම දෙවන පියවර නැවත කියමි, ක්රොස්ස්ටැබ් සහ විස්තරාත්මක සංඛ්යාලේඛන සමඟ දත්ත ගවේෂණය කරමින් ආකෘතියට සිත්ගන්නාසුළු, බුද්ධිමත් සම්බන්ධතා සොයා ගැනීමට උත්සාහ කරමි.
- සාමාන්ය ව්යාපෘති ගොනුවක් සාමාන්යයෙන් 1GB පමණ වේ. පේළි පාරිභෝගික දත්ත පිළිබඳ වාර්තාවකින් සමන්විත වන ආකාරයට ගොනු සංවිධානය කර ඇත. සෑම පේළියකටම සෑම වාර්තාවක් සඳහාම තීරු ගණනක් ඇත. මෙය සැමවිටම සිදුවනු ඇත.
- නව තීරුවක් සෑදීමේදී මම පේළි අනුව අනුභව කිරීම ඉතා කලාතුරකිනි. කෙසේ වෙතත්, වාර්තා නිර්මාණය කිරීමේදී හෝ විස්තරාත්මක සංඛ්යාලේඛන ජනනය කිරීමේදී පේළි අනුකොටස් කිරීම මට සාමාන්ය දෙයකි. උදාහරණයක් ලෙස, නිශ්චිත ව්යාපාරයක් සඳහා සරල සංඛ්යාතයක් නිර්මාණය කිරීමට මට අවශ්ය විය හැකි බව සිල්ලර ණය පත් පවසයි. මෙය සිදු කිරීම සඳහා, මම වාර්තා කිරීමට අවශ්ය කුමන තීරු වලට අමතරව ව්යාපාර රේඛාව = සිල්ලර වෙළඳාම යන රේඛා පමණක් තෝරා ගනිමි. කෙසේ වෙතත්, නව තීරු නිර්මාණය කිරීමේදී, මම සියලු දත්ත පේළි අදින්නෙමි, සහ මෙහෙයුම් සඳහා අවශ්ය තීරු පමණි.
- ආකෘති නිර්මාණ ක්රියාවලියට අවශ්ය වන්නේ මම සෑම තීරුවක්ම විශ්ලේෂණය කිරීම, යම් ප්රති come ල විචල්යයක් සමඟ සිත්ගන්නා සම්බන්ධතා සොයා බැලීම සහ එම සම්බන්ධතා විස්තර කරන නව සංයුක්ත තීරු නිර්මාණය කිරීමයි. මා ගවේෂණය කරන තීරු සාමාන්යයෙන් කුඩා කට්ටල වලින් සිදු කෙරේ. නිදසුනක් ලෙස, මම දේපල වටිනාකම් සමඟ කටයුතු කරන තීරු 20 ක කට්ටලයක් වෙත අවධානය යොමු කර ඒවා ණයක් පැහැර හැරීමට සම්බන්ධ වන ආකාරය නිරීක්ෂණය කරමි. ඒවා ගවේෂණය කර නව තීරු නිර්මාණය කළ පසු, මම තවත් තීරු සමූහයකට ගොස්, විද්යාල අධ්යාපනය යැයි කියමින්, ක්රියාවලිය නැවත කරමි. මා කරන්නේ මගේ දත්ත සහ යම් ප්රති come ල අතර සම්බන්ධතාවය පැහැදිලි කරන අපේක්ෂක විචල්යයන් නිර්මාණය කිරීමයි. මෙම ක්රියාවලිය අවසානයේදී, එම සංයුක්ත තීරුවලින් සමීකරණයක් නිර්මාණය කරන ඉගෙනුම් ක්රම කිහිපයක් මම භාවිතා කරමි.
මම කවදා හෝ දත්ත කට්ටලයට පේළි එකතු කිරීම කලාතුරකිනි. මම සෑම විටම පාහේ නව තීරු නිර්මාණය කරමි (සංඛ්යා ලේඛන / යන්ත්ර ඉගෙනීමේ උපභාෂා වල විචල්යයන් හෝ විශේෂාංග).