Подсчет строк в Google Bucket с Java - PullRequest
0 голосов
/ 25 октября 2018

Можно ли считать строки в блобе Google bucket, не загружая его?Я пытаюсь прочитать csv файлы из корзины Google, и мне нужен способ подсчитать их строки, не загружая их.Возможно ли это с помощью API, предоставляемого Google?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы можете попробовать следующее для подсчета строк объекта:

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import com.google.cloud.storage.Blob.BlobSourceOption;

public class CountObjectLines {
  public static void main(String... args) throws Exception {
    Storage storage = StorageOptions.getDefaultInstance().getService();
    Blob blob = storage.get(BlobId.of("your-bucket", "your-file.csv"));
    //This will get the content of the object
    byte[] content = blob.getContent(BlobSourceOption.generationMatch());
    String csvContent= new String(content);
    //This will count the lines of the file
    String[] lines = csvContent.split("\r\n");
    System.out.println(lines.length);
  }
}

Надеюсь, это поможет.

0 голосов
/ 25 октября 2018

Нет, это невозможно.Google Cloud Storage хранит объекты с целью обеспечения надежности и доступности.Облачное хранилище Google не обеспечивает вычислительную мощность для анализа содержимого объектов хранилища.

Вам потребуется прочитать объект, чтобы подсчитать строки.Наиболее эффективным способом было бы использование вычислительного экземпляра в облаке для максимизации производительности полосы пропускания.

Google Cloud предлагает ряд служб хранения.Некоторые из них обеспечивают вычислительную мощность как часть услуги.Если ваши CSV-файлы имеют большой размер, BigQuery будет примером, который может анализировать миллиарды строк за считанные секунды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...