embulk-output-utf8parquet 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -0
  3. data/build.gradle +91 -0
  4. data/build/classes/main/org/embulk/output/EmbulkWriteSupport$ParquetColumnVisitor.class +0 -0
  5. data/build/classes/main/org/embulk/output/EmbulkWriteSupport$SchemaConvertColumnVisitor.class +0 -0
  6. data/build/classes/main/org/embulk/output/EmbulkWriteSupport$SchemaConvertColumnVisitorWithUTF8.class +0 -0
  7. data/build/classes/main/org/embulk/output/EmbulkWriteSupport.class +0 -0
  8. data/build/classes/main/org/embulk/output/EmbulkWriterBuilder.class +0 -0
  9. data/build/classes/main/org/embulk/output/ParquetOutputPlugin$ParquetTransactionalPageOutput.class +0 -0
  10. data/build/classes/main/org/embulk/output/ParquetOutputPlugin$PluginTask.class +0 -0
  11. data/build/classes/main/org/embulk/output/ParquetOutputPlugin$TimestampColumnOption.class +0 -0
  12. data/build/classes/main/org/embulk/output/ParquetOutputPlugin.class +0 -0
  13. data/build/classes/test/org/embulk/output/ParquetOutputPluginTest.class +0 -0
  14. data/build/gemspec +19 -0
  15. data/build/libs/embulk-output-utf8parquet-1.0.0.jar +0 -0
  16. data/build/libs/embulk-output-utf8parquet-1.0.1.jar +0 -0
  17. data/build/reports/checkstyle/main.html +119 -0
  18. data/build/reports/checkstyle/main.xml +9 -0
  19. data/build/reports/checkstyle/test.html +99 -0
  20. data/build/reports/checkstyle/test.xml +5 -0
  21. data/build/reports/tests/test/classes/org.embulk.output.ParquetOutputPluginTest.html +106 -0
  22. data/build/reports/tests/test/css/base-style.css +179 -0
  23. data/build/reports/tests/test/css/style.css +84 -0
  24. data/build/reports/tests/test/index.html +132 -0
  25. data/build/reports/tests/test/js/report.js +194 -0
  26. data/build/reports/tests/test/packages/org.embulk.output.html +103 -0
  27. data/build/test-results/test/TEST-org.embulk.output.ParquetOutputPluginTest.xml +9 -0
  28. data/build/test-results/test/binary/output.bin +0 -0
  29. data/build/test-results/test/binary/output.bin.idx +0 -0
  30. data/build/test-results/test/binary/results.bin +0 -0
  31. data/build/tmp/jar/MANIFEST.MF +2 -0
  32. data/classpath/embulk-output-utf8parquet-1.0.2.jar +0 -0
  33. data/config/checkstyle/checkstyle.xml +128 -0
  34. data/config/checkstyle/default.xml +108 -0
  35. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  36. data/gradle/wrapper/gradle-wrapper.properties +6 -0
  37. data/gradlew +164 -0
  38. data/gradlew.bat +90 -0
  39. data/lib/embulk/output/utf8parquet.rb +3 -0
  40. data/src/main/java/org/embulk/output/EmbulkWriteSupport.java +215 -0
  41. data/src/main/java/org/embulk/output/EmbulkWriterBuilder.java +37 -0
  42. data/src/main/java/org/embulk/output/ParquetOutputPlugin.java +236 -0
  43. data/src/test/java/org/embulk/output/ParquetOutputPluginTest.java +70 -0
  44. metadata +115 -73
@@ -0,0 +1,179 @@
1
+
2
+ body {
3
+ margin: 0;
4
+ padding: 0;
5
+ font-family: sans-serif;
6
+ font-size: 12pt;
7
+ }
8
+
9
+ body, a, a:visited {
10
+ color: #303030;
11
+ }
12
+
13
+ #content {
14
+ padding-left: 50px;
15
+ padding-right: 50px;
16
+ padding-top: 30px;
17
+ padding-bottom: 30px;
18
+ }
19
+
20
+ #content h1 {
21
+ font-size: 160%;
22
+ margin-bottom: 10px;
23
+ }
24
+
25
+ #footer {
26
+ margin-top: 100px;
27
+ font-size: 80%;
28
+ white-space: nowrap;
29
+ }
30
+
31
+ #footer, #footer a {
32
+ color: #a0a0a0;
33
+ }
34
+
35
+ #line-wrapping-toggle {
36
+ vertical-align: middle;
37
+ }
38
+
39
+ #label-for-line-wrapping-toggle {
40
+ vertical-align: middle;
41
+ }
42
+
43
+ ul {
44
+ margin-left: 0;
45
+ }
46
+
47
+ h1, h2, h3 {
48
+ white-space: nowrap;
49
+ }
50
+
51
+ h2 {
52
+ font-size: 120%;
53
+ }
54
+
55
+ ul.tabLinks {
56
+ padding-left: 0;
57
+ padding-top: 10px;
58
+ padding-bottom: 10px;
59
+ overflow: auto;
60
+ min-width: 800px;
61
+ width: auto !important;
62
+ width: 800px;
63
+ }
64
+
65
+ ul.tabLinks li {
66
+ float: left;
67
+ height: 100%;
68
+ list-style: none;
69
+ padding-left: 10px;
70
+ padding-right: 10px;
71
+ padding-top: 5px;
72
+ padding-bottom: 5px;
73
+ margin-bottom: 0;
74
+ -moz-border-radius: 7px;
75
+ border-radius: 7px;
76
+ margin-right: 25px;
77
+ border: solid 1px #d4d4d4;
78
+ background-color: #f0f0f0;
79
+ }
80
+
81
+ ul.tabLinks li:hover {
82
+ background-color: #fafafa;
83
+ }
84
+
85
+ ul.tabLinks li.selected {
86
+ background-color: #c5f0f5;
87
+ border-color: #c5f0f5;
88
+ }
89
+
90
+ ul.tabLinks a {
91
+ font-size: 120%;
92
+ display: block;
93
+ outline: none;
94
+ text-decoration: none;
95
+ margin: 0;
96
+ padding: 0;
97
+ }
98
+
99
+ ul.tabLinks li h2 {
100
+ margin: 0;
101
+ padding: 0;
102
+ }
103
+
104
+ div.tab {
105
+ }
106
+
107
+ div.selected {
108
+ display: block;
109
+ }
110
+
111
+ div.deselected {
112
+ display: none;
113
+ }
114
+
115
+ div.tab table {
116
+ min-width: 350px;
117
+ width: auto !important;
118
+ width: 350px;
119
+ border-collapse: collapse;
120
+ }
121
+
122
+ div.tab th, div.tab table {
123
+ border-bottom: solid #d0d0d0 1px;
124
+ }
125
+
126
+ div.tab th {
127
+ text-align: left;
128
+ white-space: nowrap;
129
+ padding-left: 6em;
130
+ }
131
+
132
+ div.tab th:first-child {
133
+ padding-left: 0;
134
+ }
135
+
136
+ div.tab td {
137
+ white-space: nowrap;
138
+ padding-left: 6em;
139
+ padding-top: 5px;
140
+ padding-bottom: 5px;
141
+ }
142
+
143
+ div.tab td:first-child {
144
+ padding-left: 0;
145
+ }
146
+
147
+ div.tab td.numeric, div.tab th.numeric {
148
+ text-align: right;
149
+ }
150
+
151
+ span.code {
152
+ display: inline-block;
153
+ margin-top: 0em;
154
+ margin-bottom: 1em;
155
+ }
156
+
157
+ span.code pre {
158
+ font-size: 11pt;
159
+ padding-top: 10px;
160
+ padding-bottom: 10px;
161
+ padding-left: 10px;
162
+ padding-right: 10px;
163
+ margin: 0;
164
+ background-color: #f7f7f7;
165
+ border: solid 1px #d0d0d0;
166
+ min-width: 700px;
167
+ width: auto !important;
168
+ width: 700px;
169
+ }
170
+
171
+ span.wrapped pre {
172
+ word-wrap: break-word;
173
+ white-space: pre-wrap;
174
+ word-break: break-all;
175
+ }
176
+
177
+ label.hidden {
178
+ display: none;
179
+ }
@@ -0,0 +1,84 @@
1
+
2
+ #summary {
3
+ margin-top: 30px;
4
+ margin-bottom: 40px;
5
+ }
6
+
7
+ #summary table {
8
+ border-collapse: collapse;
9
+ }
10
+
11
+ #summary td {
12
+ vertical-align: top;
13
+ }
14
+
15
+ .breadcrumbs, .breadcrumbs a {
16
+ color: #606060;
17
+ }
18
+
19
+ .infoBox {
20
+ width: 110px;
21
+ padding-top: 15px;
22
+ padding-bottom: 15px;
23
+ text-align: center;
24
+ }
25
+
26
+ .infoBox p {
27
+ margin: 0;
28
+ }
29
+
30
+ .counter, .percent {
31
+ font-size: 120%;
32
+ font-weight: bold;
33
+ margin-bottom: 8px;
34
+ }
35
+
36
+ #duration {
37
+ width: 125px;
38
+ }
39
+
40
+ #successRate, .summaryGroup {
41
+ border: solid 2px #d0d0d0;
42
+ -moz-border-radius: 10px;
43
+ border-radius: 10px;
44
+ }
45
+
46
+ #successRate {
47
+ width: 140px;
48
+ margin-left: 35px;
49
+ }
50
+
51
+ #successRate .percent {
52
+ font-size: 180%;
53
+ }
54
+
55
+ .success, .success a {
56
+ color: #008000;
57
+ }
58
+
59
+ div.success, #successRate.success {
60
+ background-color: #bbd9bb;
61
+ border-color: #008000;
62
+ }
63
+
64
+ .failures, .failures a {
65
+ color: #b60808;
66
+ }
67
+
68
+ .skipped, .skipped a {
69
+ color: #c09853;
70
+ }
71
+
72
+ div.failures, #successRate.failures {
73
+ background-color: #ecdada;
74
+ border-color: #b60808;
75
+ }
76
+
77
+ ul.linkList {
78
+ padding-left: 0;
79
+ }
80
+
81
+ ul.linkList li {
82
+ list-style: none;
83
+ margin-bottom: 5px;
84
+ }
@@ -0,0 +1,132 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5
+ <meta http-equiv="x-ua-compatible" content="IE=edge"/>
6
+ <title>Test results - Test Summary</title>
7
+ <link href="css/base-style.css" rel="stylesheet" type="text/css"/>
8
+ <link href="css/style.css" rel="stylesheet" type="text/css"/>
9
+ <script src="js/report.js" type="text/javascript"></script>
10
+ </head>
11
+ <body>
12
+ <div id="content">
13
+ <h1>Test Summary</h1>
14
+ <div id="summary">
15
+ <table>
16
+ <tr>
17
+ <td>
18
+ <div class="summaryGroup">
19
+ <table>
20
+ <tr>
21
+ <td>
22
+ <div class="infoBox" id="tests">
23
+ <div class="counter">3</div>
24
+ <p>tests</p>
25
+ </div>
26
+ </td>
27
+ <td>
28
+ <div class="infoBox" id="failures">
29
+ <div class="counter">0</div>
30
+ <p>failures</p>
31
+ </div>
32
+ </td>
33
+ <td>
34
+ <div class="infoBox" id="ignored">
35
+ <div class="counter">0</div>
36
+ <p>ignored</p>
37
+ </div>
38
+ </td>
39
+ <td>
40
+ <div class="infoBox" id="duration">
41
+ <div class="counter">0.296s</div>
42
+ <p>duration</p>
43
+ </div>
44
+ </td>
45
+ </tr>
46
+ </table>
47
+ </div>
48
+ </td>
49
+ <td>
50
+ <div class="infoBox success" id="successRate">
51
+ <div class="percent">100%</div>
52
+ <p>successful</p>
53
+ </div>
54
+ </td>
55
+ </tr>
56
+ </table>
57
+ </div>
58
+ <div id="tabs">
59
+ <ul class="tabLinks">
60
+ <li>
61
+ <a href="#tab0">Packages</a>
62
+ </li>
63
+ <li>
64
+ <a href="#tab1">Classes</a>
65
+ </li>
66
+ </ul>
67
+ <div id="tab0" class="tab">
68
+ <h2>Packages</h2>
69
+ <table>
70
+ <thead>
71
+ <tr>
72
+ <th>Package</th>
73
+ <th>Tests</th>
74
+ <th>Failures</th>
75
+ <th>Ignored</th>
76
+ <th>Duration</th>
77
+ <th>Success rate</th>
78
+ </tr>
79
+ </thead>
80
+ <tbody>
81
+ <tr>
82
+ <td class="success">
83
+ <a href="packages/org.embulk.output.html">org.embulk.output</a>
84
+ </td>
85
+ <td>3</td>
86
+ <td>0</td>
87
+ <td>0</td>
88
+ <td>0.296s</td>
89
+ <td class="success">100%</td>
90
+ </tr>
91
+ </tbody>
92
+ </table>
93
+ </div>
94
+ <div id="tab1" class="tab">
95
+ <h2>Classes</h2>
96
+ <table>
97
+ <thead>
98
+ <tr>
99
+ <th>Class</th>
100
+ <th>Tests</th>
101
+ <th>Failures</th>
102
+ <th>Ignored</th>
103
+ <th>Duration</th>
104
+ <th>Success rate</th>
105
+ </tr>
106
+ </thead>
107
+ <tbody>
108
+ <tr>
109
+ <td class="success"/>
110
+ <a href="classes/org.embulk.output.ParquetOutputPluginTest.html">org.embulk.output.ParquetOutputPluginTest</a>
111
+ <td>3</td>
112
+ <td>0</td>
113
+ <td>0</td>
114
+ <td>0.296s</td>
115
+ <td class="success">100%</td>
116
+ </tr>
117
+ </tbody>
118
+ </table>
119
+ </div>
120
+ </div>
121
+ <div id="footer">
122
+ <p>
123
+ <div>
124
+ <label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
125
+ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
126
+ </label>
127
+ </div>Generated by
128
+ <a href="http://www.gradle.org">Gradle 3.2.1</a> at May 28, 2018 8:55:32 AM</p>
129
+ </div>
130
+ </div>
131
+ </body>
132
+ </html>
@@ -0,0 +1,194 @@
1
+ (function (window, document) {
2
+ "use strict";
3
+
4
+ var tabs = {};
5
+
6
+ function changeElementClass(element, classValue) {
7
+ if (element.getAttribute("className")) {
8
+ element.setAttribute("className", classValue);
9
+ } else {
10
+ element.setAttribute("class", classValue);
11
+ }
12
+ }
13
+
14
+ function getClassAttribute(element) {
15
+ if (element.getAttribute("className")) {
16
+ return element.getAttribute("className");
17
+ } else {
18
+ return element.getAttribute("class");
19
+ }
20
+ }
21
+
22
+ function addClass(element, classValue) {
23
+ changeElementClass(element, getClassAttribute(element) + " " + classValue);
24
+ }
25
+
26
+ function removeClass(element, classValue) {
27
+ changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
28
+ }
29
+
30
+ function initTabs() {
31
+ var container = document.getElementById("tabs");
32
+
33
+ tabs.tabs = findTabs(container);
34
+ tabs.titles = findTitles(tabs.tabs);
35
+ tabs.headers = findHeaders(container);
36
+ tabs.select = select;
37
+ tabs.deselectAll = deselectAll;
38
+ tabs.select(0);
39
+
40
+ return true;
41
+ }
42
+
43
+ function getCheckBox() {
44
+ return document.getElementById("line-wrapping-toggle");
45
+ }
46
+
47
+ function getLabelForCheckBox() {
48
+ return document.getElementById("label-for-line-wrapping-toggle");
49
+ }
50
+
51
+ function findCodeBlocks() {
52
+ var spans = document.getElementById("tabs").getElementsByTagName("span");
53
+ var codeBlocks = [];
54
+ for (var i = 0; i < spans.length; ++i) {
55
+ if (spans[i].className.indexOf("code") >= 0) {
56
+ codeBlocks.push(spans[i]);
57
+ }
58
+ }
59
+ return codeBlocks;
60
+ }
61
+
62
+ function forAllCodeBlocks(operation) {
63
+ var codeBlocks = findCodeBlocks();
64
+
65
+ for (var i = 0; i < codeBlocks.length; ++i) {
66
+ operation(codeBlocks[i], "wrapped");
67
+ }
68
+ }
69
+
70
+ function toggleLineWrapping() {
71
+ var checkBox = getCheckBox();
72
+
73
+ if (checkBox.checked) {
74
+ forAllCodeBlocks(addClass);
75
+ } else {
76
+ forAllCodeBlocks(removeClass);
77
+ }
78
+ }
79
+
80
+ function initControls() {
81
+ if (findCodeBlocks().length > 0) {
82
+ var checkBox = getCheckBox();
83
+ var label = getLabelForCheckBox();
84
+
85
+ checkBox.onclick = toggleLineWrapping;
86
+ checkBox.checked = false;
87
+
88
+ removeClass(label, "hidden");
89
+ }
90
+ }
91
+
92
+ function switchTab() {
93
+ var id = this.id.substr(1);
94
+
95
+ for (var i = 0; i < tabs.tabs.length; i++) {
96
+ if (tabs.tabs[i].id === id) {
97
+ tabs.select(i);
98
+ break;
99
+ }
100
+ }
101
+
102
+ return false;
103
+ }
104
+
105
+ function select(i) {
106
+ this.deselectAll();
107
+
108
+ changeElementClass(this.tabs[i], "tab selected");
109
+ changeElementClass(this.headers[i], "selected");
110
+
111
+ while (this.headers[i].firstChild) {
112
+ this.headers[i].removeChild(this.headers[i].firstChild);
113
+ }
114
+
115
+ var h2 = document.createElement("H2");
116
+
117
+ h2.appendChild(document.createTextNode(this.titles[i]));
118
+ this.headers[i].appendChild(h2);
119
+ }
120
+
121
+ function deselectAll() {
122
+ for (var i = 0; i < this.tabs.length; i++) {
123
+ changeElementClass(this.tabs[i], "tab deselected");
124
+ changeElementClass(this.headers[i], "deselected");
125
+
126
+ while (this.headers[i].firstChild) {
127
+ this.headers[i].removeChild(this.headers[i].firstChild);
128
+ }
129
+
130
+ var a = document.createElement("A");
131
+
132
+ a.setAttribute("id", "ltab" + i);
133
+ a.setAttribute("href", "#tab" + i);
134
+ a.onclick = switchTab;
135
+ a.appendChild(document.createTextNode(this.titles[i]));
136
+
137
+ this.headers[i].appendChild(a);
138
+ }
139
+ }
140
+
141
+ function findTabs(container) {
142
+ return findChildElements(container, "DIV", "tab");
143
+ }
144
+
145
+ function findHeaders(container) {
146
+ var owner = findChildElements(container, "UL", "tabLinks");
147
+ return findChildElements(owner[0], "LI", null);
148
+ }
149
+
150
+ function findTitles(tabs) {
151
+ var titles = [];
152
+
153
+ for (var i = 0; i < tabs.length; i++) {
154
+ var tab = tabs[i];
155
+ var header = findChildElements(tab, "H2", null)[0];
156
+
157
+ header.parentNode.removeChild(header);
158
+
159
+ if (header.innerText) {
160
+ titles.push(header.innerText);
161
+ } else {
162
+ titles.push(header.textContent);
163
+ }
164
+ }
165
+
166
+ return titles;
167
+ }
168
+
169
+ function findChildElements(container, name, targetClass) {
170
+ var elements = [];
171
+ var children = container.childNodes;
172
+
173
+ for (var i = 0; i < children.length; i++) {
174
+ var child = children.item(i);
175
+
176
+ if (child.nodeType === 1 && child.nodeName === name) {
177
+ if (targetClass && child.className.indexOf(targetClass) < 0) {
178
+ continue;
179
+ }
180
+
181
+ elements.push(child);
182
+ }
183
+ }
184
+
185
+ return elements;
186
+ }
187
+
188
+ // Entry point.
189
+
190
+ window.onload = function() {
191
+ initTabs();
192
+ initControls();
193
+ };
194
+ } (window, window.document));