Skip to content

Commit 0eebc0c

Browse files
authored
Export datafusion_physical_optimizer, only use datafusion crate in the examples (#14305)
* Only use `datafusion` crate in the examples * taplo format
1 parent be56bd3 commit 0eebc0c

35 files changed

+174
-185
lines changed

datafusion-examples/Cargo.toml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,15 @@ path = "examples/external_dependency/query-aws-s3.rs"
5454

5555
[dev-dependencies]
5656
arrow = { workspace = true }
57+
# arrow_schema is required for record_batch! macro :sad:
5758
arrow-flight = { workspace = true }
5859
arrow-schema = { workspace = true }
5960
async-trait = { workspace = true }
6061
bytes = { workspace = true }
6162
dashmap = { workspace = true }
63+
# note only use main datafusion crate for examples
6264
datafusion = { workspace = true, default-features = true, features = ["avro"] }
63-
datafusion-catalog = { workspace = true }
64-
datafusion-common = { workspace = true, default-features = true }
65-
datafusion-expr = { workspace = true }
66-
datafusion-functions-window-common = { workspace = true }
67-
datafusion-optimizer = { workspace = true, default-features = true }
68-
datafusion-physical-expr = { workspace = true, default-features = true }
69-
datafusion-physical-optimizer = { workspace = true, default-features = true }
7065
datafusion-proto = { workspace = true }
71-
datafusion-sql = { workspace = true }
7266
env_logger = { workspace = true }
7367
futures = { workspace = true }
7468
log = { workspace = true }

datafusion-examples/examples/advanced_parquet_index.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,13 @@ use std::sync::atomic::{AtomicBool, Ordering};
2424
use std::sync::Arc;
2525

2626
use arrow::array::{ArrayRef, Int32Array, RecordBatch, StringArray};
27-
use arrow_schema::SchemaRef;
27+
use arrow::datatypes::SchemaRef;
28+
use async_trait::async_trait;
29+
use bytes::Bytes;
2830
use datafusion::catalog::Session;
31+
use datafusion::common::{
32+
internal_datafusion_err, DFSchema, DataFusionError, Result, ScalarValue,
33+
};
2934
use datafusion::datasource::listing::PartitionedFile;
3035
use datafusion::datasource::physical_plan::parquet::{
3136
ParquetAccessPlan, ParquetExecBuilder,
@@ -35,6 +40,8 @@ use datafusion::datasource::physical_plan::{
3540
};
3641
use datafusion::datasource::TableProvider;
3742
use datafusion::execution::object_store::ObjectStoreUrl;
43+
use datafusion::logical_expr::utils::conjunction;
44+
use datafusion::logical_expr::{TableProviderFilterPushDown, TableType};
3845
use datafusion::parquet::arrow::arrow_reader::{
3946
ArrowReaderOptions, ParquetRecordBatchReaderBuilder, RowSelection, RowSelector,
4047
};
@@ -43,20 +50,12 @@ use datafusion::parquet::arrow::ArrowWriter;
4350
use datafusion::parquet::file::metadata::ParquetMetaData;
4451
use datafusion::parquet::file::properties::{EnabledStatistics, WriterProperties};
4552
use datafusion::parquet::schema::types::ColumnPath;
53+
use datafusion::physical_expr::utils::{Guarantee, LiteralGuarantee};
4654
use datafusion::physical_expr::PhysicalExpr;
55+
use datafusion::physical_optimizer::pruning::PruningPredicate;
4756
use datafusion::physical_plan::metrics::ExecutionPlanMetricsSet;
4857
use datafusion::physical_plan::ExecutionPlan;
4958
use datafusion::prelude::*;
50-
use datafusion_common::{
51-
internal_datafusion_err, DFSchema, DataFusionError, Result, ScalarValue,
52-
};
53-
use datafusion_expr::utils::conjunction;
54-
use datafusion_expr::{TableProviderFilterPushDown, TableType};
55-
use datafusion_physical_expr::utils::{Guarantee, LiteralGuarantee};
56-
use datafusion_physical_optimizer::pruning::PruningPredicate;
57-
58-
use async_trait::async_trait;
59-
use bytes::Bytes;
6059
use futures::future::BoxFuture;
6160
use futures::FutureExt;
6261
use object_store::ObjectStore;
@@ -284,7 +283,7 @@ impl IndexTableProvider {
284283
.transpose()?
285284
// if there are no filters, use a literal true to have a predicate
286285
// that always evaluates to true we can pass to the index
287-
.unwrap_or_else(|| datafusion_physical_expr::expressions::lit(true));
286+
.unwrap_or_else(|| datafusion::physical_expr::expressions::lit(true));
288287

289288
Ok(predicate)
290289
}

datafusion-examples/examples/advanced_udaf.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,25 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
use arrow_schema::{Field, Schema};
18+
use arrow::datatypes::{Field, Schema};
19+
use datafusion::physical_expr::NullState;
1920
use datafusion::{arrow::datatypes::DataType, logical_expr::Volatility};
20-
use datafusion_physical_expr::NullState;
2121
use std::{any::Any, sync::Arc};
2222

23-
use arrow::{
24-
array::{
25-
ArrayRef, AsArray, Float32Array, PrimitiveArray, PrimitiveBuilder, UInt32Array,
26-
},
27-
datatypes::{ArrowNativeTypeOp, ArrowPrimitiveType, Float64Type, UInt32Type},
28-
record_batch::RecordBatch,
23+
use arrow::array::{
24+
ArrayRef, AsArray, Float32Array, PrimitiveArray, PrimitiveBuilder, UInt32Array,
2925
};
26+
use arrow::datatypes::{ArrowNativeTypeOp, ArrowPrimitiveType, Float64Type, UInt32Type};
27+
use arrow::record_batch::RecordBatch;
28+
use datafusion::common::{cast::as_float64_array, ScalarValue};
3029
use datafusion::error::Result;
31-
use datafusion::prelude::*;
32-
use datafusion_common::{cast::as_float64_array, ScalarValue};
33-
use datafusion_expr::{
30+
use datafusion::logical_expr::{
3431
expr::AggregateFunction,
3532
function::{AccumulatorArgs, AggregateFunctionSimplification, StateFieldsArgs},
3633
simplify::SimplifyInfo,
37-
Accumulator, AggregateUDF, AggregateUDFImpl, GroupsAccumulator, Signature,
34+
Accumulator, AggregateUDF, AggregateUDFImpl, EmitTo, GroupsAccumulator, Signature,
3835
};
36+
use datafusion::prelude::*;
3937

4038
/// This example shows how to use the full AggregateUDFImpl API to implement a user
4139
/// defined aggregate function. As in the `simple_udaf.rs` example, this struct implements
@@ -308,7 +306,7 @@ impl GroupsAccumulator for GeometricMeanGroupsAccumulator {
308306
}
309307

310308
/// Generate output, as specified by `emit_to` and update the intermediate state
311-
fn evaluate(&mut self, emit_to: datafusion_expr::EmitTo) -> Result<ArrayRef> {
309+
fn evaluate(&mut self, emit_to: EmitTo) -> Result<ArrayRef> {
312310
let counts = emit_to.take_needed(&mut self.counts);
313311
let prods = emit_to.take_needed(&mut self.prods);
314312
let nulls = self.null_state.build(emit_to);
@@ -344,7 +342,7 @@ impl GroupsAccumulator for GeometricMeanGroupsAccumulator {
344342
}
345343

346344
// return arrays for counts and prods
347-
fn state(&mut self, emit_to: datafusion_expr::EmitTo) -> Result<Vec<ArrayRef>> {
345+
fn state(&mut self, emit_to: EmitTo) -> Result<Vec<ArrayRef>> {
348346
let nulls = self.null_state.build(emit_to);
349347
let nulls = Some(nulls);
350348

datafusion-examples/examples/advanced_udf.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ use arrow::array::{
2424
use arrow::compute;
2525
use arrow::datatypes::{DataType, Float64Type};
2626
use arrow::record_batch::RecordBatch;
27+
use datafusion::common::{exec_err, internal_err, ScalarValue};
2728
use datafusion::error::Result;
29+
use datafusion::logical_expr::sort_properties::{ExprProperties, SortProperties};
2830
use datafusion::logical_expr::Volatility;
29-
use datafusion::prelude::*;
30-
use datafusion_common::{exec_err, internal_err, ScalarValue};
31-
use datafusion_expr::sort_properties::{ExprProperties, SortProperties};
32-
use datafusion_expr::{
31+
use datafusion::logical_expr::{
3332
ColumnarValue, ScalarFunctionArgs, ScalarUDF, ScalarUDFImpl, Signature,
3433
};
34+
use datafusion::prelude::*;
3535

3636
/// This example shows how to use the full ScalarUDFImpl API to implement a user
3737
/// defined function. As in the `simple_udf.rs` example, this struct implements

datafusion-examples/examples/advanced_udwf.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,24 @@
1818
use datafusion::{arrow::datatypes::DataType, logical_expr::Volatility};
1919
use std::any::Any;
2020

21+
use arrow::datatypes::Field;
2122
use arrow::{
2223
array::{ArrayRef, AsArray, Float64Array},
2324
datatypes::Float64Type,
2425
};
25-
use arrow_schema::Field;
26+
use datafusion::common::ScalarValue;
2627
use datafusion::error::Result;
2728
use datafusion::functions_aggregate::average::avg_udaf;
28-
use datafusion::prelude::*;
29-
use datafusion_common::ScalarValue;
30-
use datafusion_expr::expr::WindowFunction;
31-
use datafusion_expr::function::{WindowFunctionSimplification, WindowUDFFieldArgs};
32-
use datafusion_expr::simplify::SimplifyInfo;
33-
use datafusion_expr::{
34-
Expr, PartitionEvaluator, Signature, WindowFrame, WindowUDF, WindowUDFImpl,
29+
use datafusion::logical_expr::expr::WindowFunction;
30+
use datafusion::logical_expr::function::{
31+
PartitionEvaluatorArgs, WindowFunctionSimplification, WindowUDFFieldArgs,
32+
};
33+
use datafusion::logical_expr::simplify::SimplifyInfo;
34+
use datafusion::logical_expr::{
35+
Expr, PartitionEvaluator, Signature, WindowFrame, WindowFunctionDefinition,
36+
WindowUDF, WindowUDFImpl,
3537
};
36-
use datafusion_functions_window_common::partition::PartitionEvaluatorArgs;
38+
use datafusion::prelude::*;
3739

3840
/// This example shows how to use the full WindowUDFImpl API to implement a user
3941
/// defined window function. As in the `simple_udwf.rs` example, this struct implements
@@ -189,7 +191,7 @@ impl WindowUDFImpl for SimplifySmoothItUdf {
189191
fn simplify(&self) -> Option<WindowFunctionSimplification> {
190192
let simplify = |window_function: WindowFunction, _: &dyn SimplifyInfo| {
191193
Ok(Expr::WindowFunction(WindowFunction {
192-
fun: datafusion_expr::WindowFunctionDefinition::AggregateUDF(avg_udaf()),
194+
fun: WindowFunctionDefinition::AggregateUDF(avg_udaf()),
193195
args: window_function.args,
194196
partition_by: window_function.partition_by,
195197
order_by: window_function.order_by,

datafusion-examples/examples/analyzer_rule.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
// under the License.
1717

1818
use arrow::array::{ArrayRef, Int32Array, RecordBatch, StringArray};
19+
use datafusion::common::config::ConfigOptions;
20+
use datafusion::common::tree_node::{Transformed, TreeNode};
21+
use datafusion::common::Result;
22+
use datafusion::logical_expr::{col, lit, Expr, LogicalPlan, LogicalPlanBuilder};
23+
use datafusion::optimizer::analyzer::AnalyzerRule;
1924
use datafusion::prelude::SessionContext;
20-
use datafusion_common::config::ConfigOptions;
21-
use datafusion_common::tree_node::{Transformed, TreeNode};
22-
use datafusion_common::Result;
23-
use datafusion_expr::{col, lit, Expr, LogicalPlan, LogicalPlanBuilder};
24-
use datafusion_optimizer::analyzer::AnalyzerRule;
2525
use std::sync::{Arc, Mutex};
2626

2727
/// This example demonstrates how to add your own [`AnalyzerRule`] to

datafusion-examples/examples/composed_extension_codec.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ use std::ops::Deref;
3636
use std::sync::Arc;
3737

3838
use datafusion::common::Result;
39+
use datafusion::common::{internal_err, DataFusionError};
40+
use datafusion::logical_expr::registry::FunctionRegistry;
41+
use datafusion::logical_expr::{AggregateUDF, ScalarUDF};
3942
use datafusion::physical_plan::{DisplayAs, ExecutionPlan};
4043
use datafusion::prelude::SessionContext;
41-
use datafusion_common::{internal_err, DataFusionError};
42-
use datafusion_expr::registry::FunctionRegistry;
43-
use datafusion_expr::{AggregateUDF, ScalarUDF};
4444
use datafusion_proto::physical_plan::{AsExecutionPlan, PhysicalExtensionCodec};
4545
use datafusion_proto::protobuf;
4646

datafusion-examples/examples/csv_json_opener.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
use std::sync::Arc;
1919

20-
use arrow_schema::{DataType, Field, Schema};
20+
use arrow::datatypes::{DataType, Field, Schema};
2121
use datafusion::{
2222
assert_batches_eq,
2323
datasource::{

datafusion-examples/examples/custom_file_format.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ use std::{any::Any, sync::Arc};
1919

2020
use arrow::{
2121
array::{AsArray, RecordBatch, StringArray, UInt8Array},
22-
datatypes::UInt64Type,
22+
datatypes::{DataType, Field, Schema, SchemaRef, UInt64Type},
2323
};
24-
use arrow_schema::{DataType, Field, Schema, SchemaRef};
24+
use datafusion::common::{GetExt, Statistics};
2525
use datafusion::execution::session_state::SessionStateBuilder;
2626
use datafusion::physical_expr::LexRequirement;
27+
use datafusion::physical_expr::PhysicalExpr;
2728
use datafusion::{
2829
datasource::{
2930
file_format::{
@@ -38,8 +39,6 @@ use datafusion::{
3839
physical_plan::ExecutionPlan,
3940
prelude::SessionContext,
4041
};
41-
use datafusion_common::{GetExt, Statistics};
42-
use datafusion_physical_expr::PhysicalExpr;
4342
use object_store::{ObjectMeta, ObjectStore};
4443
use tempfile::tempdir;
4544

datafusion-examples/examples/dataframe.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717

1818
use arrow::array::{ArrayRef, Int32Array, RecordBatch, StringArray};
1919
use datafusion::arrow::datatypes::{DataType, Field, Schema};
20+
use datafusion::common::config::CsvOptions;
21+
use datafusion::common::parsers::CompressionTypeVariant;
22+
use datafusion::common::DataFusionError;
23+
use datafusion::common::ScalarValue;
2024
use datafusion::dataframe::DataFrameWriteOptions;
2125
use datafusion::error::Result;
2226
use datafusion::functions_aggregate::average::avg;
2327
use datafusion::functions_aggregate::min_max::max;
2428
use datafusion::prelude::*;
25-
use datafusion_common::config::CsvOptions;
26-
use datafusion_common::parsers::CompressionTypeVariant;
27-
use datafusion_common::DataFusionError;
28-
use datafusion_common::ScalarValue;
2929
use std::fs::File;
3030
use std::io::Write;
3131
use std::sync::Arc;

0 commit comments

Comments
 (0)