Создайте отчет SSRS, который может иметь несколько матриц с разными столбцами

PySpark , поскольку версия 1.1 поддерживает Hadoop Input Formats . Вы можете использовать опцию textinputformat.record.delimiter для использования разделителя пользовательского формата, как показано ниже

from operator import itemgetter

retrosheet = sc.newAPIHadoopFile(
    '/path/to/retrosheet/file',
    'org.apache.hadoop.mapreduce.lib.input.TextInputFormat',
    'org.apache.hadoop.io.LongWritable',
    'org.apache.hadoop.io.Text',
    conf={'textinputformat.record.delimiter': '\nid,'}
)
(retrosheet
    .filter(itemgetter(1))
    .values()
    .filter(lambda x: x)
    .map(lambda v: (
        v if v.startswith('id') else 'id,{0}'.format(v)).splitlines()))

2
задан zacker20 13 July 2018 в 21:38
поделиться

2 ответа

Вы можете сделать это, вложив матрицу в таблицу.

Шаг 1. Создайте таблицу только с одной группой на странице_ид и установите ее на разрыв страницы.

Шаг 2: Создайте матрицу с row_id в группе строк, column_name в группе столбцов и столбце_значения на значениях

. Вы будете выглядеть как изображение ниже

Шаг 3 : Вставить матрицу внутри ячейки группы таблицы

Выполняя отчет, ваш результат будет выглядеть как изображения ниже

1
ответ дан niktrs 17 August 2018 в 12:07
поделиться
  • 1
    Хороший совет. Ключ состоит в том, что заголовки столбцов находятся в строках в наборе данных. Вы позволяете отчету группировать их по столбцам для вас, чтобы они были динамическими. Потому что вы не можете иметь динамические имена столбцов в наборе данных. – StevenWhite 16 July 2018 в 16:24
  • 2
    Строка заголовка таблицы может быть легко удалена, если не требуется – niktrs 16 July 2018 в 17:07
  • 3
    Вау! Спасибо за помощь! Это сработало отлично. – zacker20 18 July 2018 в 13:28
  • 4
    Добро пожаловать – niktrs 18 July 2018 в 13:44
0
ответ дан Tom 29 October 2018 в 15:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: