标签: apache-arrow

CMake尝试编译简单测试程序时失败

我正在尝试遵循在本地进行构建pyarrow的文档。具体来说,使用conda说明:

conda create -y -n pyarrow-dev -c conda-forge \
    --file arrow/ci/conda_env_unix.yml \
    --file arrow/ci/conda_env_cpp.yml \
    --file arrow/ci/conda_env_python.yml \
    compilers \
    python=3.7
conda activate pyarrow-dev
export ARROW_HOME=$CONDA_PREFIX
git clone https://github.com/apache/arrow.git
mkdir arrow/cpp/build
pushd arrow/cpp/build
cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DARROW_FLIGHT=ON \
      -DARROW_GANDIVA=ON \
      -DARROW_ORC=ON \
      -DARROW_PARQUET=ON \
      -DARROW_PYTHON=ON \
      -DARROW_PLASMA=ON \
      -DARROW_BUILD_TESTS=ON \
      ..
Run Code Online (Sandbox Code Playgroud)

cmake指令失败,并显示以下错误消息:

-- Building using CMake version: 3.12.3
-- The C compiler identification is Clang 4.0.1
-- The CXX …
Run Code Online (Sandbox Code Playgroud)

c++ xcode cmake apache-arrow pyarrow

2
推荐指数
1
解决办法
496
查看次数

我可以使用 pyarrow 加载多个 csv 文件吗?

我知道这可以在 R 中完成,如下所示

ds <- open_dataset("nyc-taxi/csv/2019", format = "csv",
  partitioning = "month")
Run Code Online (Sandbox Code Playgroud)

但是有没有办法用Python来做呢?尝试过这些,但似乎这不是一个选择

from pyarrow import csv
table = csv.read_csv("*.csv")
Run Code Online (Sandbox Code Playgroud)
from pyarrow import csv
path = os.getcwd()
table = csv.read_csv(path)
table
Run Code Online (Sandbox Code Playgroud)

有没有办法让它在 python 中发生?

python csv apache-arrow pyarrow

1
推荐指数
1
解决办法
1738
查看次数

如何在没有互联网的情况下在 ubuntu 上安装 R 箭头包的库?

我正在研究 Azure 数据块,它的计算服务器是 Ubuntu 18.04。我想安装箭头R 包,但由于安全原因无法访问互联网。我在可以访问互联网的 MacBook 上下载了箭头 tar 文件,并在 ubuntu 中提供了手动安装。我执行了以下步骤:

  1. 通过从此链接下载并上传到 ubuntu 并执行以下 bash 命令以使其可用来重新安装build-essentialsudo dpkg -i /dbfs/FileStore/tables/build_essential_12_4ubuntu1_amd64.deb
  2. 安装了cpp11,因为它是cran 上提到的依赖项:R CMD INSTALL /dbfs/FileStore/tables/arrow_dir/cpp11_0_3_1.tar.gz
  3. 这里下载了arrow_4.0.1.tar.gz并使其在 ubuntu 上可用。
  4. 在这里,我看到在安装箭头包之前需要在 ubuntu 上可用的C++ 依赖项。如何在无法访问互联网的情况下安装这些依赖项?

感谢您阅读我的问题。

注意:下面建议了一个解决方案,执行后./thirdparty/download_dependencies.sh $HOME/arrow-thirdparty我得到:

# Environment variables for offline Arrow build
export ARROW_ABSL_URL=/root/arrow-thirdparty/absl-0f3bb466b868b523cf1dc9b2aaaed65c77b28862.tar.gz
export ARROW_AWSSDK_URL=/root/arrow-thirdparty/aws-sdk-cpp-1.8.133.tar.gz
export ARROW_AWS_CHECKSUMS_URL=/root/arrow-thirdparty/aws-checksums-v0.1.10
export ARROW_AWS_C_COMMON_URL=/root/arrow-thirdparty/aws-c-common-v0.5.10.tar.gz
export ARROW_AWS_C_EVENT_STREAM_URL=/root/arrow-thirdparty/aws-c-event-stream-v0.1.5
export ARROW_BOOST_URL=/root/arrow-thirdparty/boost-1.75.0.tar.gz
export ARROW_BROTLI_URL=/root/arrow-thirdparty/brotli-v1.0.9.tar.gz
export ARROW_BZIP2_URL=/root/arrow-thirdparty/bzip2-1.0.8.tar.gz …
Run Code Online (Sandbox Code Playgroud)

r apache-arrow

1
推荐指数
1
解决办法
90
查看次数

r 箭头架构更新

.csv我尝试读取多个文件arrow::open_dataset(),但由于列类型不一致而引发错误。

我发现这个问题主要与我的问题有关,但我正在尝试一种稍微不同的方法。

  1. 我想使用arrow一个示例 CSV 文件来利用类型的自动检测。弄清楚所有类型的列非常耗时。

  2. 然后,我采用架构并更正一些导致问题的列。

  3. 然后我使用更新后的架构来读取所有文件。

以下是我的方法:

data = read_csv_arrow('data.csv.gz', as_data_frame = F) # has more than 30 columns
sch = data$schema
print(sch)
Run Code Online (Sandbox Code Playgroud)
Schema
trade_id: int64
secid: int64
side: int64
...
nonstd: int64
flags: string
Run Code Online (Sandbox Code Playgroud)

我想将'trade_id'列类型从int64更改为string并将其他列保持不变。

如何更新架构?

我正在使用 R arrow,但我想相关的答案pyarrow可能适用。

r apache-arrow pyarrow

1
推荐指数
1
解决办法
628
查看次数

带有字符串表达式的箭头 filter() 不适用于 Shiny。有解决方法吗?

与这个较旧的问题相比,使用字符串表达式进行过滤现在确实适用于 Arrow 数据集,但它们在反应式 Shiny 环境中不起作用。 有解决方法吗?这是箭头化的 Shiny 演示应用程序。我添加了一个 textInput() 小部件并尝试过滤其中的内容。在下面的代码中,分配给的subset是操作所在的位置。Arrow 版本在 Shiny 上下文之外工作,并且在 Shiny 内部使用字符串文字而不是表达式工作。

library(shiny)
library(arrow)
library(dplyr)
library(stringr)

faithful <- faithful |> 
  mutate(size = if_else(eruptions > 4,"Big One","Little One"))
  
faithful_arrow <- faithful |> 
  as_arrow_table()
# Define UI for application that draws a histogram
ui <- fluidPage(
    # Application title
    titlePanel("Old Faithful Geyser Data"),

    # Sidebar with a slider input for number of bins 
    sidebarLayout(
        sidebarPanel(
            textInput("size","Size",value = "Big"),
            sliderInput("bins",
                        "Number of bins:",
                        min = 1, …
Run Code Online (Sandbox Code Playgroud)

r dplyr apache-arrow

1
推荐指数
1
解决办法
135
查看次数

R:在Ubuntu 18.04上安装箭头的箭头

我尝试使用安装{arrow},install.packages("arrow")但出现以下错误

In file included from array.cpp:18:0:
./arrow_types.h:198:10: fatal error: parquet/arrow/reader.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我正在使用R 3.6.1

r apache-arrow

0
推荐指数
1
解决办法
63
查看次数

arrow::py::import_pyarrow() 导致分段错误

我正在尝试使用 arrow-cpp 构建一个表,然后将其传输回 python。

为了做到这一点,我需要事先调用 arrow::py::import_pyarrow() ,但这会导致 SEGFAULT。

谁能帮我找出我哪里做错了?

这是一个最小的例子

CMakeLists.txt

cmake_minimum_required(VERSION 3.20.0)
project(TEST)
set(CMAKE_CXX_STANDARD 17)
set(Python3_EXECUTABLE "/home/auderson/miniconda3/bin/python3.8")

list(APPEND CMAKE_PREFIX_PATH "/home/auderson/miniconda3/lib/cmake/arrow")
find_package(Arrow REQUIRED)
find_package(ArrowPython REQUIRED)
find_package(Python3 COMPONENTS Interpreter Development)


include_directories(.
        /home/auderson/miniconda3/lib/python3.8/site-packages/pyarrow/include
        ${Python3_INCLUDE_DIRS})

add_executable(TEST
        mini_t.cpp
        )

target_link_libraries(${PROJECT_NAME} PRIVATE arrow_shared)
target_link_libraries(${PROJECT_NAME} PRIVATE arrow_python_shared)
target_link_libraries(${PROJECT_NAME} PRIVATE ${Python3_LIBRARIES})

Run Code Online (Sandbox Code Playgroud)

.cpp文件


#include "arrow/python/pyarrow.h"

int main() {
    return arrow::py::import_pyarrow();
}


Run Code Online (Sandbox Code Playgroud)

输出(调试模式)

Signal: SIGSEGV (Segmentation fault)

Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

如果不在调试模式:

Process finished with exit code 139
Run Code Online (Sandbox Code Playgroud)

箭头的其他功能工作得很好。

c++ python-3.x apache-arrow pyarrow

0
推荐指数
1
解决办法
1021
查看次数

R 中箭头包的 read_csv_arrow 中的时间戳解析问题

假设有一个csv文件名为ta_sample.csv

"BILL_DT","AMOUNT"
"2015-07-27T18:30:00Z",16000
"2015-07-07T18:30:00Z",6110
"2015-07-26T18:30:00Z",250
"2015-07-22T18:30:00Z",1000
"2015-07-06T18:30:00Z",2640000
Run Code Online (Sandbox Code Playgroud)

read_csv_arrow使用并自定义实际生产数据中始终需要的列类型来阅读上述内容:

library(arrow)
read_csv_arrow(
  "ta_sample.csv",
  col_names = c("BILL_DT", "AMOUNT"),
  col_types = "td",
  skip = 1,
  timestamp_parsers = c("%Y-%m-%dT%H:%M:%SZ"))
Run Code Online (Sandbox Code Playgroud)

结果如下:

# A tibble: 5 x 2
  BILL_DT              AMOUNT
  <dttm>                <dbl>
1 2015-07-28 00:00:00   16000
2 2015-07-08 00:00:00    6110
3 2015-07-27 00:00:00     250
4 2015-07-23 00:00:00    1000
5 2015-07-07 00:00:00 2640000
Run Code Online (Sandbox Code Playgroud)

这里的问题是日期增加一天并且时间消失。这里值得一提的是,data.table::fread()以及readr::read_csv()正确阅读它,例如,

library(readr)
read_csv("ta_sample.csv")
# A tibble: 5 x 2
  BILL_DT              AMOUNT
  <dttm>                <dbl>
1 2015-07-27 18:30:00 …
Run Code Online (Sandbox Code Playgroud)

csv r parquet apache-arrow

0
推荐指数
1
解决办法
670
查看次数

apache arrow 的问题:错误 C2668:'arrow::internal::launder':对重载函数的不明确调用

我开始使用 Apache arrow。我是通过vcpkg安装的。一切都很好,直到我将安装的 arrow 更新到 6.0.1。我使用 powershell 控制台中的以下命令安装了它:

vcpkg install arrow:x64-windows-static
Run Code Online (Sandbox Code Playgroud)

它已成功安装,我看到了成功消息(不知何故):

The package arrow provides CMake targets:
        find_package(arrow CONFIG REQUIRED)
        target_link_libraries(main PRIVATE re2::re2 arrow_static parquet_static arrow_bundled_dependencies)
Run Code Online (Sandbox Code Playgroud)

我有一个名为csv_column_test.cpp. 然后我注释掉了该文件的所有内容,除了这两行:

#define ARROW_STATIC
#include <arrow/api.h>
Run Code Online (Sandbox Code Playgroud)

并尝试编译它。我不断遇到这个错误:

error C2668: 'arrow::internal::launder': ambiguous call to overloaded function
Run Code Online (Sandbox Code Playgroud)

我想念什么?如何让事情再次运转?

谢谢。

这是完整的错误日志:

>------ Build All started: Project: StockPredII, Configuration: x64-Debug (default) ------
  [1/2] Building CXX object splib\CMakeFiles\splib_test.dir\sparrow\csv_column_test.cpp.obj
  FAILED: splib/CMakeFiles/splib_test.dir/sparrow/csv_column_test.cpp.obj 
  C:\PROGRA~2\MICROS~4\2019\PROFES~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DARROW_DEPENDENCY_SOURCE=VCPKG -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING -I\Catch2\include -I..\..\..\splib -IE:\sandbox\vcpkg\installed\x64-windows-static\include /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MTd /Zi /Ob0 …
Run Code Online (Sandbox Code Playgroud)

c++ cmake vcpkg apache-arrow

0
推荐指数
1
解决办法
187
查看次数

标签 统计

apache-arrow ×9

r ×5

pyarrow ×4

c++ ×3

cmake ×2

csv ×2

dplyr ×1

parquet ×1

python ×1

python-3.x ×1

vcpkg ×1

xcode ×1