Skip to content

Commit 1d60aa1

Browse files
author
Brian Hulette
committed
Moved DataFrame ops to Table. DataFrame is now an interface
1 parent e8979ba commit 1d60aa1

File tree

7 files changed

+158
-226
lines changed

7 files changed

+158
-226
lines changed

js/perf/index.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,16 @@ function createGetByIndexTest(vector) {
124124
}
125125

126126
function createDataFrameDirectCountTest(table, column, test, value) {
127-
let df = DataFrame.from(table);
128127
let colidx = table.columns.findIndex((c)=>c.name === column);
129128

130129
if (test == 'gteq') {
131130
op = function () {
132131
sum = 0;
133-
for (let batch = -1; ++batch < df.lengths.length;) {
134-
const length = df.lengths[batch];
132+
for (let batch = -1; ++batch < table.lengths.length;) {
133+
const length = table.lengths[batch];
135134

136135
// load batches
137-
const columns = df.batches[batch];
136+
const columns = table.batches[batch];
138137

139138
// yield all indices
140139
for (let idx = -1; ++idx < length;) {
@@ -145,11 +144,11 @@ function createDataFrameDirectCountTest(table, column, test, value) {
145144
} else if (test == 'eq') {
146145
op = function() {
147146
sum = 0;
148-
for (let batch = -1; ++batch < df.lengths.length;) {
149-
const length = df.lengths[batch];
147+
for (let batch = -1; ++batch < table.lengths.length;) {
148+
const length = table.lengths[batch];
150149

151150
// load batches
152-
const columns = df.batches[batch]
151+
const columns = table.batches[batch]
153152

154153
// yield all indices
155154
for (let idx = -1; ++idx < length;) {
@@ -169,13 +168,13 @@ function createDataFrameDirectCountTest(table, column, test, value) {
169168
}
170169

171170
function createDataFrameFilterCountTest(table, column, test, value) {
172-
let df = DataFrame.from(table);
173171
let colidx = table.columns.findIndex((c)=>c.name === column);
172+
let df;
174173

175174
if (test == 'gteq') {
176-
df = df.filter(col(column).gteq(value));
175+
df = table.filter(col(column).gteq(value));
177176
} else if (test == 'eq') {
178-
df = df.filter(col(column).eq(value));
177+
df = table.filter(col(column).eq(value));
179178
} else {
180179
throw new Error(`Unrecognized test "${test}"`);
181180
}

js/src/Arrow.externs.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ Table.prototype.key;
5050
Table.prototype.select;
5151
/** @type {?} */
5252
Table.prototype.toString;
53+
/** @type {?} */
54+
Table.prototype.lengths;
55+
/** @type {?} */
56+
Table.prototype.batches;
5357

5458
let Vector = function() {};
5559
/** @type {?} */
@@ -83,14 +87,6 @@ DictionaryVector.prototype.getKey;
8387
/** @type {?} */
8488
DictionaryVector.prototype.getValue;
8589

86-
let DataFrame = function () {};
87-
/** @type {?} */
88-
DataFrame.prototype.lengths;
89-
/** @type {?} */
90-
DataFrame.prototype.columns;
91-
/** @type {?} */
92-
DataFrame.prototype.batches;
93-
9490
let Col = function() {};
9591
/** @type {?} */
9692
Col.prototype.gteq;

js/src/Arrow.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,14 @@ import {
4545
TimestampVector,
4646
} from './vector/numeric';
4747

48-
import { DataFrame } from './dataframe/dataframe';
49-
import { lit, col } from './dataframe/predicate';
48+
import { lit, col } from './vector/predicate';
5049

5150
// closure compiler always erases static method names:
5251
// https://github.com/google/closure-compiler/issues/1776
5352
// set them via string indexers to save them from the mangler
5453
Table['from'] = Table.from;
5554
Table['fromAsync'] = Table.fromAsync;
5655
BoolVector['pack'] = BoolVector.pack;
57-
DataFrame['from'] = DataFrame.from;
5856

5957
export { read, readAsync };
6058
export { Table, Vector, StructRow };
@@ -88,8 +86,7 @@ export {
8886
FixedSizeListVector,
8987
};
9088

91-
export { DataFrame } from './dataframe/dataframe';
92-
export { lit, col } from './dataframe/predicate';
89+
export { lit, col } from './vector/predicate';
9390

9491

9592
/* These exports are needed for the closure umd targets */
@@ -103,7 +100,6 @@ try {
103100
Arrow['readAsync'] = readAsync;
104101
Arrow['Table'] = Table;
105102
Arrow['Vector'] = Vector;
106-
Arrow['DataFrame'] = DataFrame;
107103
Arrow['StructRow'] = StructRow;
108104
Arrow['BoolVector'] = BoolVector;
109105
Arrow['ListVector'] = ListVector;

js/src/bin/arrow2csv.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ files.forEach((source) => {
9797
printTable(table);
9898
});
9999

100-
function printTable(table: Arrow.Table<any>) {
100+
function printTable(table: Arrow.Table) {
101101
let header = [...table.columns.map((_, i) => table.key(i))].map(stringify);
102102
let maxColumnWidths = header.map(x => x.length);
103103
// Pass one to convert to strings and count max column widths

js/src/dataframe/dataframe.ts

Lines changed: 0 additions & 179 deletions
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)