Data.table: SHM рдЖрдХрд╛рд░ рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЬреБрд▓ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Rdatatable/data.table

рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ mmap рдЖрдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, /dev/shm рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ R рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ /dev/shm рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдХрд╛рд░ 64M рд╣реИред рдЬрдм рдХреЛрдб рдПрдХ рдкрд╛рдЗрдкреНрдб рд╕реНрдЯреНрд░реАрдо рдкрд░ рдПрдХ mmap рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ Hadoop fs -cat /myfile.csv рдХреЗ рд╕рд╛рде) рддреЛ рдпрд╣ рдкрд╛рдЗрдк рд╕реЗ mmap рдореЗрдВ рдХреЗрд╡рд▓ shm рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкрдврд╝реЗрдЧрд╛ред рдпрд╣ рд╕реА рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреНрдпреЛрдВ рдлрд╝реНрд░реЗрдб рдиреЗ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХреА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреЗрдЯрд╛ рдХреЗ рдЖрд░ рдФрд░ рд╕реА рдХреЛрдб рдореЗрдВ рдПрдХ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ (рдореЗрд░реЗ рдкрд╛рдЗрдк рдХреЛ рдХрд╛рдЯреЗ рдЬрд╛рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрджреЗрд╢):

 (ERROR):Expected sep (',') but ' ' ends field 0 when detecting types from point 10: 14183667

рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдХреЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬреЛ /dev/shm . рд╕реЗ ~5 рдореЗрдЧрд╛рдкрд┐рдХреНрд╕рд▓ рдмрдбрд╝реА рд╣реЛ
  • /dev/shm рдХреЛ 64M рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ (рдпрд╣ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ)
  • "cat ~/myfile.csv" рдкрд░ рдлрд╝реНрд░реЗрдб рдЪрд▓рд╛рдПрдБ <- cat рдкрд╛рдЗрдк рдмрдирд╛рддрд╛ рд╣реИ
  • рдбреЙрдХрд░ V1.12+
  • рдбреЙрдХрд░ рд╣рдм рд╕реЗ рд╕реЗрдВрдЯреЛрд╕ рдирд╡реАрдирддрдо рдЫрд╡рд┐
  • рдЖрд░-рдУрдкрди v3.4.0 (рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ)

рдХреЛрдб рдореЗрдВ: https://github.com/Rdatatable/data.table/blob/master/src/fread.c
рд▓рд╛рдЗрди 788 рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╢рд╛рдпрдж рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП /dev/shm рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рд┐рд░реНрдл рдореЗрдореЛрд░реА рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЛрдХрд░ рдореЗрдВ рдпрд╣рд╛рдБ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдмреЛрдЬрд╝ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ:

 > dat.df3<-fread("/opt/cloudera/parcels/CDH/bin/hadoop fs -cat /user/tcederquist/tim_pop_comm_14_5 | head -3668850" ,sep=",", header=TRUE, verbose=TRUE)
 Input contains no \n. Taking this to be a filename to open
 File opened, filesize is 0.062500 GB.
 Memory mapping ... ok
 ....basic output
 Type codes (point  8): 1111
 Type codes (point  9): 1111
 (ERROR):Expected sep (',') but ' ' ends field 0 when detecting types from point 10: 14183667

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо:

 File opened, filesize is 0.373524 GB.

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрди # рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЬрд╛рдирддрд╛ рд╣реИред рд╡рд░реНрдмреЛрдЬрд╝ рдзреНрд╡рдЬ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рд╣рд╛рде рд╕реЗ рдореВрд▓реНрдп рдкрд░ рд╢реВрдиреНрдп рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдиреЗ рдкрдВрдХреНрддрд┐ # рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реЛред vebose=T рдЙрд╕ рд╕реНрдерд╛рди рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ # рд╕реАрдорд╛рдВрдХрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдкрд░ рдЙрдкрдпреЛрдЧреА рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 20M рд░рд┐рдХреЙрд░реНрдб рдереЗ):

 Count of eol: 3668839 (including 0 at the end)
 nrow = MIN( nsep [11006514] / (ncol [4] -1), neol [3668839] - endblanks [0] ) = 3668838

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рд╣реА zUMIS/19 рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреЗрд╡ 1.10.5 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рджреЛрд╕реНрддреЛрдВ!

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ /dev/shm рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдХрдВрдЯреЗрдирд░ рдпрд╛ рдЖрдкрдХреЗ OS рдореЗрдВ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯ рдЯрд░реНрдо рдлрд┐рдХреНрд╕ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдзреБрдирд┐рдХ OS рдЖрдкрдХреА рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдХрд╛ 50% рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ 64G amazon ec2 рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker рдХрдВрдЯреЗрдирд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ:

 docker run --shm-size="30g" ... other stuff ...

рдорд╛рдирд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХрд░рдирд╛ред
рджреЗрд╡ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рдпрд╣ рд╣реИ news рд╕реЗ:

рд╕рд┐рд╕реНрдЯрдо рдХрдорд╛рдВрдб рдЗрдирдкреБрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд░рд╛рдо рдбрд┐рд╕реНрдХ (/ dev / shm) рдХрд╛ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреЗрдЬреА рд╕реЗ рдЬрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, #1139 рдФрд░ zUMI/19ред рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдЗрд▓ рдЪреБрдВрдЧ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдорд╛рдирдХ tempdir() рдЕрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реИрдо рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ TEMPDIR рдХреЛ /dev/shm рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ; рджреЗрдЦреЗрдВ?

рдХреГрдкрдпрд╛ рджреЗрд╡ 1.10.5 рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рд╣реА zUMIS/19 рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреЗрд╡ 1.10.5 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рджреЛрд╕реНрддреЛрдВ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alex46015 picture alex46015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

st-pasha picture st-pasha  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mattdowle picture mattdowle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arunsrinivasan picture arunsrinivasan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

symbalex picture symbalex  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ