code: func (c *InternalClient) Import(ctx context.Context, index, field string, shard uint64, bits []pilosa.Bit, opts ...pilosa.ImportOption) error {
  	span, ctx := tracing.StartSpanFromContext(ctx, "InternalClient.Import")
  	defer span.Finish()
  
  	if index == "" {
  		return pilosa.ErrIndexRequired
  	} else if field == "" {
  		return pilosa.ErrFieldRequired
  	}
  
  	// Set up import options.
  	options := &pilosa.ImportOptions{}
  	for _, opt := range opts {
  		err := opt(options)
  		if err != nil {
  			return errors.Wrap(err, "applying option")
  		}
  	}
  
  	buf, err := c.marshalImportPayload(index, field, shard, bits)
  	if err != nil {
  		return fmt.Errorf("Error Creating Payload: %s", err)
  	}
  
  	// Retrieve a list of nodes that own the shard.
  	nodes, err := c.FragmentNodes(ctx, index, shard)
  	if err != nil {
  		return fmt.Errorf("shard nodes: %s", err)
  	}
  
  	// Import to each node.
  	for _, node := range nodes {
  		if err := c.importNode(ctx, node, index, field, buf, options); err != nil {
  			return fmt.Errorf("import node: host=%s, err=%s", node.URI, err)
  		}
  	}
  
  	return nil
  }
docs: // Import bulk imports bits for a single shard to a host.