ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format - #361

Closed
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452
Closed

ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file format#361
wesm wants to merge 4 commits into
apache:masterfrom
wesm:ARROW-452

Conversation

@wesm

@wesmwesm commented Mar 7, 2017

Copy link
Copy Markdown
Member

The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.

The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.

I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.

@wesm

wesm commented Mar 7, 2017

Copy link
Copy Markdown
MemberAuthor

Another issue I have to deal with is that Feather uses int32 days since UNIX epoch for dates, and Arrow currently is int64 millis since the epoch, so zero copy date reads isn't possible at the moment

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I added a 32-bit date type. While it adds complexity having 2 different date types, since the int32 days-since-UNIX-epoch occurs quite frequently in the wild, not being able to load with zero copy would be a deficiency. Luckily adding new logical types doesn't involve too much new code

@xhochy

Copy link
Copy Markdown
Member

@wesm If we want to keep this type, we should add a two JIRAs:

  • Add this type to the JVM implementation
  • Add a convenience cast function between the two types. (We should probably soon add a general cast interface, at least in parquet-cpp that would reduce some lines of code).

(I will probably have some time on Friday to review the changes here. Given the scale, Gerrit would be preferable but I'm ok with Github if it turns out to be problematic currently.)

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy we need to turn on Forge Committer in Gerrit because it's rejecting the commits by authors that aren't registered in the system. I'll reach out to some folks at Cloudera to see if that's possible.

I don't think we necessarily need to add the Date32 type to the Java implementation so long as we have a function to cast to the proper Date type in an IPC setting, we should certainly have a discussion about it though.

Agree about having casting functions

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

I should have the timestamp-with-tz issues resolved today, and I sent a message to ASF committers at Cloudera to change the settings on the Arrow project there so I can upload the review

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy if it helps, I think I can divide this patch into two pieces, the first is the IPC refactor (that creates arrow/loader.h) and support machinery (i.e. the Date32Array etc.), and the 2nd part is the Feather code itself

@wesm

wesm commented Mar 8, 2017

Copy link
Copy Markdown
MemberAuthor

@xhochy I split the unrelated changes into ARROW-605, so let's review that first and then I will rebase. going to get this branch passing now

@wesmwesm changed the title WIP ARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatARROW-452: [C++/Python] Incorporate C++ and Python codebases for Feather file formatMar 9, 2017
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Completing the timestamp+tz functionality is going to be a bit invasive because of pandas's "synthetic" dtypes, which means we need to create the Arrow type object before calling PandasToArrow. After #364 and #365 are in I will take the opportunity to do some refactoring in pandas.cc to do this more cleanly

asfgit pushed a commit that referenced this pull request Mar 9, 2017
…lass. Add Date32Type
These are various changes introduced to support the Feather merge in ARROW-452#361
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#365 from wesm/array-loader and squashes the following commits:
bc22872 [Wes McKinney] Revert Array::type_id to type_enum since Parquet uses this API
344e6b1 [Wes McKinney] fix compiler warning
997b7a2 [Wes McKinney] Refactor IPC adapter code into generic ArrayLoader class. Add Date32Type
…oring to
maximize code reuse with IPC reader/writer classes. Get C++ test suite
passing.
@wesm

wesm commented Mar 9, 2017

Copy link
Copy Markdown
MemberAuthor

Rebased. I will complete the datetime-with-tz issue when I can, maybe tomorrow or Saturday

@xhochyxhochy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good here 👍

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

I need to do some refactoring for the datetime+tz issue to get the test suite passing, so I'll ping you again when I have that all working

@wesm

wesm commented Mar 11, 2017

Copy link
Copy Markdown
MemberAuthor

Actually, I'm going to disable those tests and merge this patch once the build is green. That way we can review the refactoring work more easily as a new patch

wesm added 3 commits March 11, 2017 12:25
Change-Id: Idad749d82d9a999f449a621eca7ee3eabeca5b20
Change-Id: Ia6cf85453c5926205fbbb180536e75e5a331a21a
Change-Id: I3a4dd6a03caad000ffe077514ef540cf53c9af17
@wesm
wesm deleted the ARROW-452 branch March 11, 2017 22:00
asfgit pushed a commit that referenced this pull request Mar 12, 2017
Closes#345. I had mostly done this in #361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closes#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
…her file format
The goal for this patch is to provide an eventual migration path for Feather (https://github.com/wesm/feather) users to use the batch and streaming Arrow file formats internally. Eventually the Feather metadata can be deprecated, but we will need to wait for the R community to build and ship Arrow bindings for R before that can happen. In the meantime, we won't need to maintain multiple Python/C++ codebases for the Python side of things.
The test suite isn't yet passing because support for timestamps with time zones has not been implemented in the conversion to pandas.DataFrame, so I will do that when I can, but this can be reviewed in the meantime.
I would upload a Gerrit code review, but there are some access control settings on gerrit.cloudera.org that need changing.
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/ARROW-452 and squashes the following commits:
b7bfd30 [Wes McKinney] Add missing license header
06cbdca [Wes McKinney] Fix -Wconversion error
244959c [Wes McKinney] Mark datetime+tz tests as xfail
9a95094 [Wes McKinney] Incorporate Feather C++ and Python codebases and do associated refactoring to maximize code reuse with IPC reader/writer classes. Get C++ test suite passing.
jeffknupp pushed a commit to jeffknupp/arrow that referenced this pull request Mar 15, 2017
Closesapache#345. I had mostly done this in apache#361 so this adds tests to `ipc-adapter-test`
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#371 from wesm/ARROW-534 and squashes the following commits:
cab6d4f [Wes McKinney] Add functions to make record batches for date, date32, timestamp, time. Fix bugs
wesm added a commit to wesm/arrow that referenced this pull request Sep 8, 2018
Also fixes a gcc 4.8 buglet (std::vector::erase does not accept a const_iterator in gcc 4.8)
Author: Wes McKinney <wes.mckinney@twosigma.com>
Closesapache#361 from wesm/PARQUET-1043 and squashes the following commits:
4451c5c [Wes McKinney] Raise minimum CMake version to 3.2, delete cruft. Fix gcc 4.8 buglet with std::vector::erase
Change-Id: I41793599f5ea8e07d16a850e9b43af812a1814a3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@wesm@xhochy