में परिवर्तित करता है मैं स्पार्क 1.5.0 के माध्यम से पीईएसपार्क का उपयोग कर रहा हूं। मेरे पास डेटाटाइम मानों के लिए कॉलम की पंक्तियों में असामान्य स्ट्रिंग प्रारूप है। यह इस तरह दिखता है:पायस्पार्क डेटाफ्रेम असामान्य स्ट्रिंग प्रारूप को टाइमस्टैम्प
Row[(daytetime='2016_08_21 11_31_08')]
वहाँ एक रास्ता एक टाइमस्टैम्प में इस अपरंपरागत yyyy_mm_dd hh_mm_dd
प्रारूप कन्वर्ट करने के लिए है? कुछ है कि अंततः
df = df.withColumn("date_time",df.daytetime.astype('Timestamp'))
की तर्ज पर आ सकता है मैंने सोचा था regexp_replace
की तरह है कि स्पार्क एसक्यूएल कार्यों काम कर सकता था, लेकिन निश्चित रूप से मैं तारीख आधा और _
:
साथ में -
साथ _
प्रतिस्थापित करने की आवश्यकता समय हिस्सा मैं सोच रहा था कि मैं substring
का उपयोग करके कॉलम को 2 में विभाजित कर सकता हूं और समय के अंत से पिछड़ा हुआ हूं। फिर 'regexp_replace' अलग से करें, फिर concatenate। लेकिन यह कई परिचालनों में प्रतीत होता है? क्या कोई आसान तरीका है?
इसलिए मैं वास्तव में नहीं मिल रहा है सही परिणाम: ................................ df1 = df1.with कॉलम ("dayte_time", unix_timestamp ("डेटटाइम", "yyyy_MM_dd hh_mm_ss")। कास्ट ("टाइमस्टैंप")) df1 = df1.with कॉलम ("date_time", df1.dayte_time.astype ("स्ट्रिंग")) ---------- -------------------------------------------------- -------------------- [पंक्ति (दिन का समय = '2016_08_22 23_18_51', idnbr = 223338299392, dayte_time = datetime.datetime (1 9 70, 1, 18, 0, 51 , 47, 931000), date_time = '1970-01-18 00: 51: 47.931') – PR102012
क्षमा करें, मैं भूल रहा हूं कि 1.5 छोटी थी। '.cast (" टाइमस्टैंप ") से पहले 1000 से दोगुना या गुणा करने के लिए डाला गया ' – zero323
हां, सही। '.cast ("डबल")' आगे काम किया। – PR102012