{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/8988","labels_url":"https://api.github.com/repos/apache/spark/issues/8988/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/8988/comments","events_url":"https://api.github.com/repos/apache/spark/issues/8988/events","html_url":"https://github.com/apache/spark/pull/8988","id":109902827,"number":8988,"title":"[SPARK-8848] [SQL] Refactors Parquet write path to follow parquet-format","user":{"login":"liancheng","id":230655,"avatar_url":"https://avatars.githubusercontent.com/u/230655?v=3","gravatar_id":"","url":"https://api.github.com/users/liancheng","html_url":"https://github.com/liancheng","followers_url":"https://api.github.com/users/liancheng/followers","following_url":"https://api.github.com/users/liancheng/following{/other_user}","gists_url":"https://api.github.com/users/liancheng/gists{/gist_id}","starred_url":"https://api.github.com/users/liancheng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liancheng/subscriptions","organizations_url":"https://api.github.com/users/liancheng/orgs","repos_url":"https://api.github.com/users/liancheng/repos","events_url":"https://api.github.com/users/liancheng/events{/privacy}","received_events_url":"https://api.github.com/users/liancheng/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":21,"created_at":"2015-10-05T22:56:15Z","updated_at":"2015-10-08T08:31:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/8988","html_url":"https://github.com/apache/spark/pull/8988","diff_url":"https://github.com/apache/spark/pull/8988.diff","patch_url":"https://github.com/apache/spark/pull/8988.patch"},"body":"This PR refactors Parquet write path to follow parquet-format spec.  It's a successor of PR #7679, but with less non-essential changes.\r\n\r\nMajor changes include:\r\n\r\n1.  Replaces `RowWriteSupport` and `MutableRowWriteSupport` with `CatalystWriteSupport`\r\n\r\n    - Writes Parquet data using standard layout defined in parquet-format\r\n\r\n      Specifically, we are now writing ...\r\n\r\n      - ... arrays and maps in standard 3-level structure with proper annotations and field names\r\n      - ... decimals as `INT32` and `INT64` whenever possible, and taking `FIXED_LEN_BYTE_ARRAY` as the final fallback\r\n\r\n    - Supports legacy mode which is compatible with Parquet format used by Spark 1.5 and prior versions\r\n\r\n      The legacy mode is by default off, and can be turned on by flipping SQL option `spark.sql.parquet.writeLegacyFormat` to `true`.\r\n\r\n    - Eliminates per value data type dispatching costs via prebuilt composed writer functions\r\n\r\n1.  Cleans up the last pieces of old Parquet support code\r\n\r\nAs pointed out by @rxin previously, we probably want to rename all those `Catalyst*` Parquet classes to `Parquet*` for clarity.  But I'd like to do this in a follow-up PR to minimize code review noises in this one."},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/146457244","html_url":"https://github.com/apache/spark/pull/8988#issuecomment-146457244","issue_url":"https://api.github.com/repos/apache/spark/issues/8988","id":146457244,"user":{"login":"AmplabJenkins","id":4031291,"avatar_url":"https://avatars.githubusercontent.com/u/4031291?v=3","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2015-10-08T08:31:31Z","updated_at":"2015-10-08T08:31:31Z","body":"Test PASSed.\nRefer to this link for build results (access rights to CI server needed): \nhttps://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/43387/\nTest PASSed."}}